-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapollo.js
More file actions
32 lines (30 loc) · 1.29 KB
/
apollo.js
File metadata and controls
32 lines (30 loc) · 1.29 KB
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
const {ApolloServer} = require("apollo-server-express");
const Dataloader = require('dataloader');
const resolvers = require('./Resolvers/main');
const typeDefs = require('./TypeDefs/main');
const loaders = require('./Loaders/main');
const {Token} = require('./Middlewares/Token');
const apolloServer = new ApolloServer({
typeDefs,
resolvers,
context: async ({req}) => {
await Token(req);
return {
requestedUserInfo: req.user,
loaders: {
genres: new Dataloader(keys => loaders.genreLoaders.batchGenre(keys)),
shows: new Dataloader(keys => loaders.showLoaders.batchShow(keys)),
seasons: new Dataloader(keys => loaders.seasonLoaders.batchSeason(keys)),
scategory: new Dataloader(keys => loaders.scategoryLoaders.batchScategory(keys)),
tvcategory: new Dataloader(keys => loaders.tvcategoryLoaders.batchTvcategory(keys)),
movies: new Dataloader(keys => loaders.movieLoaders.batchMovie(keys)),
sports: new Dataloader(keys => loaders.sportLoaders.batchSports(keys)),
tvs: new Dataloader(keys => loaders.tvLoaders.batchTv(keys))
}
}
},
formatError: (err) => {
return err;
}
})
module.exports = apolloServer