Skip to content

Latest commit

 

History

History
55 lines (47 loc) · 1.38 KB

aws.md

File metadata and controls

55 lines (47 loc) · 1.38 KB

AWS API Gateway with Lambda

The AWS Lambda handler can handle API Gateway v1 or v2 events.

import { createLambdaHandler } from '@ts-rest/serverless/aws';
import { contract } from './contract';
import { router } from './router';

export const handler = createLambdaHandler(
  contract,
  router,
  {
    // options
  }
);

Context Object

In addition to the regular context properties, the context object for AWS Lambda handlers includes the following additional properties:

  • rawEvent: APIGatewayProxyEvent | APIGatewayProxyEventV2: The raw event object that was passed to the Lambda function.
  • lambdaContext: Context: The Lambda context. The type is imported from the aws-lambda package.
import { createLambdaHandler } from '@ts-rest/serverless/aws';
import { contract } from './contract';

export const handler = createLambdaHandler(
  contract,
  {
    getPost: async ({ params: { id } }, { rawEvent, lambdaContext }) => {
      return {
        status: 200,
        body: {
          id,
          title: 'Hello, World!',
        },
      };
    },
  },
  {
    requestMiddleware: [
      (request, { rawEvent, lambdaContext }) => {
        console.log('Raw Event:', context.rawEvent);
        console.log('Lambda Context:', context.lambdaContext);
      }
    ],
    responseHandlers: [
      (response, request, { rawEvent, lambdaContext }) => {}
    ]
  }
);