text: // Generated by BUCKLESCRIPT VERSION 2.1.0, PLEASE EDIT WITH CARE
  'use strict'
  
  var Fs = require('fs')
  var Utils = require('./utils/Utils.bs.js')
  var Graphql = require('graphql')
  var HttpUtils = require('./utils/HttpUtils.bs.js')
  var GraphQLScalar = require('bs-graphql-scalar/src/GraphQLScalar.bs.js')
  var GraphqlTools = require('graphql-tools')
  var PaperClipHandler = require('./paperclips/PaperClipHandler.bs.js')
  var ApolloServerExpress = require('bs-apollo-server-express/src/ApolloServerExpress.js')
  var ExpressPromiseRouter = require('express-promise-router')
  
  function make () {
    var router = ExpressPromiseRouter(/* () */ 0)
    router.get('/', HttpUtils.heartbeat)
    return router
  }
  
  var Web = /* module */ [/* make */ make]
  
  var path = require('path')
  
  var schema = Fs.readFileSync(
    path.join(__dirname, '../graphql/schema.graphql'),
    'utf8'
  )
  
  var queries = Fs.readFileSync(
    path.join(__dirname, '../graphql/queries.graphql'),
    'utf8'
  )
  
  var coreResolvers = {
    DateTime: new Graphql.GraphQLScalarType({
      name: 'DateTime',
      description: 'DateTime custom scalar Type',
      serialize: function (value) {
        return value.toISOString()
      },
      parseValue: function (str) {
        return new Date(str)
      },
      parseLiteral: function (ast) {
        var kind = ast.kind
        if (kind === GraphQLScalar.Language[/* intKind */ 0]) {
          return Utils.$$parseInt(ast.value)
        } else {
          return null
        }
      },
    }),
  }
  
  function makeSchema (dataProvider) {
    var paperClip = PaperClipHandler.make(dataProvider)
    var resolvers = Object.assign(
      {
        Mutation: Object.assign(paperClip[/* mutations */ 2], {}),
      },
      Object.assign(
        {
          Query: Object.assign(paperClip[/* queries */ 1], {}),
        },
        Object.assign(
          paperClip[/* resolvers */ 0],
          Object.assign(coreResolvers, {})
        )
      )
    )
    return GraphqlTools.makeExecutableSchema({
      typeDefs: schema + queries,
      resolvers: resolvers,
    })
  }
  
  function make$1 (dataProvider) {
    var eta = makeSchema(dataProvider)
    return ApolloServerExpress.createGraphQLExpressMiddleware(
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      /* None */ 0,
      eta
    )
  }
  
  var GraphQL = /* module */ [
    /* path */ path,
    /* schema */ schema,
    /* queries */ queries,
    /* coreResolvers */ coreResolvers,
    /* makeSchema */ makeSchema,
    /* make */ make$1,
  ]
  
  exports.Web = Web
  exports.GraphQL = GraphQL
  /* path Not a pure module */
  