blob: 45746e09be1941e65d15f1aa8fc9e457e2dd9bd0 (
plain) (
blame)
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
|
const { ApolloServer } = require("apollo-server-cloudflare");
const {
graphqlCloudflare,
} = require("apollo-server-cloudflare/dist/cloudflareApollo");
const KVCache = require("../kv-cache");
const SenpyAPI = require("../datasources/senpy");
const resolvers = require("../resolvers");
const typeDefs = require("../schema");
const dataSources = () => ({
senpyAPI: new SenpyAPI(),
});
const kvCache = { cache: new KVCache() };
const createServer = (graphQLOptions) =>
new ApolloServer({
typeDefs,
resolvers,
introspection: true,
dataSources,
...(graphQLOptions.kvCache ? kvCache : {}),
});
const handler = async (request, graphQLOptions) => {
const server = createServer(graphQLOptions);
await server.start();
return graphqlCloudflare(() => server.createGraphQLServerOptions(request))(
request
);
};
module.exports = handler;
|