Repository URL to install this package:
|
Version:
1.3.3 ▾
|
import './bootstrapper/setup'
import express from 'express'
import { ApolloServer } from 'apollo-server-express'
import { importSchema } from 'graphql-import'
import resolvers from './resolvers'
import { securityOriginMiddleware } from './deps/security'
import { apolloApiKey } from './bootstrapper/api/ENV'
import compression from 'compression'
import bodyParser from 'body-parser'
import cookieParser from 'cookie-parser'
import proxyMiddleware from './proxy'
import * as endpoints from './endpoints'
import { cookieMiddleware } from './deps/cookieMiddleware'
console.log('[gql] loading dynamic schema?', process.env.NODE_ENV === 'development')
export const typeDefs =
process.env.NODE_ENV === 'development' && process.env.SHOULD_USE_DYNAMIC_SCHEMA
? importSchema('src/schema.graphql')
: require('./generated/skava-graphql.graphql')
const createApp = () => {
const app = express()
app.use(compression())
app.use(cookieParser())
app.use('/api', proxyMiddleware)
app.use(bodyParser.urlencoded({ extended: true }))
app.options('/graphql', securityOriginMiddleware, cookieMiddleware)
const server = new ApolloServer({
typeDefs,
resolvers,
engine: {
apiKey: apolloApiKey,
},
tracing: true,
cacheControl: true,
context: {
...endpoints,
},
formatError: error => {
console.log(error)
return error
},
formatResponse: response => {
console.log(response)
return response
},
introspection: true,
playground: true,
})
server.applyMiddleware({
app,
path: '/graphql',
bodyParserConfig: true,
cors: true,
})
return app
}
export { createApp, proxyMiddleware, cookieMiddleware }