12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /**
- * Configure dotenv:
- * https://www.npmjs.com/package/dotenv
- *
- * Configure file updates with multer:
- * https://github.com/expressjs/multer
- *
- * Configure CORS for use with localhost.
- */
- const quickMiddleware = (req, res, next) => {
- if (
- req.body &&
- req.body.operationName &&
- req.body.operationName !== 'IntrospectionQuery' &&
- req.body.variables &&
- req.body.query
- ) {
- console.log(req.body.operationName, req.body.variables)
- }
- next()
- }
- require('dotenv').config()
- const { GraphQLServer } = require('graphql-yoga')
- const cookieParser = require('cookie-parser')
- const bodyParser = require('body-parser')
- const cors = require('cors')
- const express = require('express')
- const { merge } = require('lodash')
- const { db, populateUser } = require('./src/db')
- const { uploadMiddleware, handleFile } = require('./src/file')
- const { authenticate } = require('./src/authenticate')
- const prismaResolvers = require('./src/resolvers')
- const system = require('./src/system')
- const interfaces = require('./src/interfaces')
- const typeDefs = ['./schema.graphql', system.typeDefs, interfaces.typeDefs]
- const resolvers = merge(
- system.resolvers,
- interfaces.resolvers,
- prismaResolvers.resolvers
- )
- const server = new GraphQLServer({
- typeDefs,
- resolvers,
- context: req => ({
- ...req,
- db,
- debug: true
- })
- })
- server.express.use(cookieParser())
- server.express.use(bodyParser.json())
- server.express.use(quickMiddleware)
- server.express.use(authenticate)
- server.express.use(populateUser)
- server.express.use(
- cors({ origin: process.env.FRONTEND_URL, credentials: true })
- )
- server.express.use('/static', express.static('static'))
- server.express.post('/upload', uploadMiddleware.single('file'), handleFile)
- server.start(
- {
- cors: {
- credentials: true,
- origin: process.env.FRONTEND_URL
- }
- },
- server => console.log(`Server is running on http://localhost:${server.port}`)
- )
|