index.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 { authenticate } = require('./src/authenticate')
  14. const prismaResolvers = require('./src/resolvers')
  15. const resolvers = merge(prismaResolvers.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(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. )