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