index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * Configure dotenv:
  3. * https://www.npmjs.com/package/dotenv
  4. *
  5. * Configure CORS for use with localhost.
  6. */
  7. require('dotenv').config()
  8. const { GraphQLServer } = require('graphql-yoga')
  9. const cookieParser = require('cookie-parser')
  10. const bodyParser = require('body-parser')
  11. const cors = require('cors')
  12. const express = require('express')
  13. const { merge } = require('lodash')
  14. const { db, populateUser } = require('./src/db')
  15. // const { authenticate } = require('./src/authenticate')
  16. const prismaResolvers = require('./src/resolvers')
  17. // const typeDefs = ['./schema.graphql', system.typeDefs, interfaces.typeDefs]
  18. const resolvers = merge(
  19. // system.resolvers,
  20. // interfaces.resolvers,
  21. prismaResolvers.resolvers
  22. )
  23. const typeDefs = ['./schema.graphql']
  24. const server = new GraphQLServer({
  25. typeDefs,
  26. resolvers,
  27. context: req => ({
  28. ...req,
  29. db,
  30. debug: true
  31. })
  32. })
  33. server.express.use(cookieParser())
  34. server.express.use(bodyParser.json())
  35. // server.express.use(quickMiddleware)
  36. // server.express.use(authenticate)
  37. server.express.use(populateUser)
  38. server.express.use(
  39. cors({ origin: process.env.FRONTEND_URL, credentials: true })
  40. )
  41. server.express.use('/static', express.static('static'))
  42. server.start(
  43. {
  44. cors: {
  45. credentials: true,
  46. origin: process.env.FRONTEND_URL
  47. }
  48. },
  49. server => console.log(`Server is running on http://localhost:${server.port}`)
  50. )