-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
56 lines (51 loc) · 1.18 KB
/
index.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import dotenv from 'dotenv';
import { ApolloServer, makeExecutableSchema } from 'apollo-server-lambda';
import schema from './graphql/schema';
import MongoDB from './db/Mongodb';
dotenv.config();
let conn = null;
const server = new ApolloServer(
{
schema: makeExecutableSchema(schema),
introspection: true,
playground: {
settings: {
'editor.theme': 'dark',
},
tabs: [
{
endpoint: '/graphql',
},
],
},
path: '/graphql',
context: async ({ event, context }) => {
conn = await MongoDB({
conn,
mongoUrl: event.stageVariables ? `mongodb+${event.stageVariables.MONGO_URL}` : process.env.MONGO_URL,
});
return ({
headers: event.headers,
functionName: context.functionName,
event,
context,
adresses: conn.model('adresses'),
users: conn.model('users'),
});
},
},
);
const graphqlHandler = server.createHandler({
cors: {
origin: '*',
methods: 'POST',
allowedHeaders: [
'Content-Type',
'Origin',
'Accept',
],
credentials: true,
},
});
export { graphqlHandler };
export default graphqlHandler;