From 38dc4fa6257ae83205b56f85e70cd05365957cc2 Mon Sep 17 00:00:00 2001 From: Patrick Smith Date: Wed, 3 Jul 2024 10:17:31 +1000 Subject: [PATCH] - update lambda code to new api --- packages/server/src/lambda.ts | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/packages/server/src/lambda.ts b/packages/server/src/lambda.ts index f036df7..89a7cf6 100644 --- a/packages/server/src/lambda.ts +++ b/packages/server/src/lambda.ts @@ -1,16 +1,32 @@ -import { ApolloServer } from "apollo-server-lambda"; +import { ApolloServer } from "@apollo/server"; import { APIGatewayProxyEvent } from "aws-lambda"; -import { createConfig } from "./config"; +import { Env, createConfig } from "./config"; +import { handlers, startServerAndCreateLambdaHandler } from "@as-integrations/aws-lambda"; -const server = new ApolloServer( - createConfig( +/** + * Create a basic server, for use with `startServerAndCreateLambdaHandler` function + */ +const server = new ApolloServer({ + ...createConfig( // Get environment-specific information from environment variables - process.env, + process.env as Env, (integrationContext: { event: APIGatewayProxyEvent }, headerName) => // Because we're running in an AWS Lambda, extract headers from the // lambda event integrationContext.event.headers[headerName] - ) -); + ), +}); -exports.handler = server.createHandler(); +export const handler = startServerAndCreateLambdaHandler( + server, + handlers.createAPIGatewayProxyEventV2RequestHandler(), + { + middleware: [ + async (event) => { + console.log("###? received event body=" + JSON.stringify(event.body)); + // @ts-ignore + event.requestContext["http"] = { method: event.requestContext.httpMethod }; //have to do this otherwise error in request handler + }, + ] + } +);