index.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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 { merge } = require('lodash')
  12. const { db, populateUser } = require('./src/db')
  13. const user = require('./src/user')
  14. const prismaResolvers = require('./src/resolvers')
  15. const resolvers = merge(prismaResolvers.resolvers, user.resolvers)
  16. const typeDefs = ['./schema.graphql']
  17. const server = new GraphQLServer({
  18. typeDefs,
  19. resolvers,
  20. context: req => ({
  21. ...req,
  22. db,
  23. debug: true
  24. })
  25. })
  26. server.express.use(cookieParser())
  27. server.express.use(bodyParser.json())
  28. // server.express.use(quickMiddleware)
  29. server.express.use(user.authenticate)
  30. server.express.use(populateUser)
  31. server.express.use('/static', express.static('static'))
  32. server.start(
  33. {
  34. cors: {
  35. credentials: true,
  36. origin: process.env.FRONTEND_URL
  37. }
  38. },
  39. server => console.log(`Server is running on http://localhost:${server.port}`)
  40. )