forked from electerious/Ackee
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcreateApolloServer.js
42 lines (39 loc) · 1.26 KB
/
createApolloServer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
'use strict'
const {
ApolloServerPluginLandingPageGraphQLPlayground: apolloServerPluginLandingPageGraphQLPlayground,
ApolloServerPluginLandingPageDisabled: apolloServerPluginLandingPageDisabled,
} = require('apollo-server-core')
const httpHeadersPlugin = require('apollo-server-plugin-http-headers')
const {
UnsignedIntResolver,
UnsignedIntTypeDefinition,
DateTimeResolver,
DateTimeTypeDefinition,
PositiveFloatResolver,
PositiveFloatTypeDefinition,
} = require('graphql-scalars')
const config = require('./config')
module.exports = (ApolloServer, options) => new ApolloServer({
introspection: config.isDemoMode === true || config.isDevelopmentMode === true,
playground: config.isDemoMode === true || config.isDevelopmentMode === true,
debug: config.isDevelopmentMode === true,
plugins: [
httpHeadersPlugin,
(config.isDemoMode === true || config.isDevelopmentMode === true) ?
apolloServerPluginLandingPageGraphQLPlayground() :
apolloServerPluginLandingPageDisabled(),
],
typeDefs: [
UnsignedIntTypeDefinition,
DateTimeTypeDefinition,
PositiveFloatTypeDefinition,
require('../types'),
],
resolvers: {
UnsignedInt: UnsignedIntResolver,
DateTime: DateTimeResolver,
PositiveFloat: PositiveFloatResolver,
...require('../resolvers'),
},
...options,
})