Files
landscape-template/api/functions/graphql/index.js

45 lines
934 B
JavaScript

const { ApolloServer } = require("apollo-server-lambda");
const schema = require('./schema')
const { createExpressApp } = require("../../modules");
const server = new ApolloServer({
schema,
context: async ({ event, context, express }) => {
const userPubKey = express.req.user?.id;
return { userPubKey }
},
});
const apolloHandler = server.createHandler({
expressGetMiddlewareOptions: {
cors: {
origin: ['http://localhost:3000', 'https://studio.apollographql.com'],
credentials: true,
}
},
expressAppFromMiddleware(middleware) {
const app = createExpressApp();
app.use(middleware)
return app;
}
});
// https://github.com/vendia/serverless-express/issues/427#issuecomment-924580007
const handler = (event, context, ...args) => {
return apolloHandler(
{
...event,
requestContext: context,
},
context,
...args
);
};
exports.handler = handler;