-
Notifications
You must be signed in to change notification settings - Fork 169
/
server.ts
29 lines (24 loc) · 768 Bytes
/
server.ts
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
import 'reflect-metadata';
import { ApolloServer } from 'apollo-server-express';
import { GraphQLModule } from '@graphql-modules/core';
import cookie from 'cookie';
import usersModule from './modules/users';
import chatsModule from './modules/chats';
export const rootModule = new GraphQLModule({
name: 'root',
imports: [usersModule, chatsModule],
});
export const server = new ApolloServer({
schema: rootModule.schema,
context: (session: any) => {
if (session.connection) {
const req = session.connection.context.session.request;
const cookies = req.headers.cookie;
if (cookies) {
req.cookies = cookie.parse(cookies);
}
}
return rootModule.context(session);
},
subscriptions: rootModule.subscriptions,
});