Skip to content

Conversation

@github-actions
Copy link
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@as-integrations/[email protected]

Major Changes

  • #67 5669d23 Thanks @BlenderDude! - ## Why Change?

    In the interest of supporting more event types and allowing user-extensibility, the event parsing has been rearchitected. The goal with v2.0 is to allow customizability at each step in the event pipeline, leading to a higher level of Lambda event coverage (including 100% custom event requests).

    What changed?

    The second parameter introduces a handler that controls parsing and output generation based on the event type you are consuming. We support 3 event types out-of-the-box: APIGatewayProxyV1/V2 and ALB. Additionally, there is a function for creating your own event parsers in case the pre-defined ones are not sufficient.

    This update also introduces middleware, a great way to modify the request on the way in or update the result on the way out.

    startServerAndCreateLambdaHandler(
      server,
      handlers.createAPIGatewayProxyEventV2RequestHandler(),
      {
        middleware: [
          async (event) => {
            // event updates here
            return async (result) => {
              // result updates here
            };
          },
        ],
      },
    );

    Upgrade Path

    The upgrade from v1.x to v2.0.0 is quite simple, just update your startServerAndCreateLambdaHandler with the new request handler parameter. Example:

    import {
      startServerAndCreateLambdaHandler,
      handlers,
    } from '@as-integrations/aws-lambda';
    
    export default startServerAndCreateLambdaHandler(
      server,
      handlers.createAPIGatewayProxyEventV2RequestHandler(),
    );

    The 3 event handlers provided by the package are:

    • createAPIGatewayProxyEventV2RequestHandler()
    • createALBEventRequestHandler()
    • createAPIGatewayProxyEventRequestHandler()

    Each of these have an optional type parameter which you can use to extend the base event. This is useful if you are using Lambda functions with custom authorizers and need additional context in your events.

    Creating your own event parsers is now possible with handlers.createRequestHandler(). Creation of custom handlers is documented in the README.

@codesandbox-ci
Copy link

codesandbox-ci bot commented Jan 24, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit a0bd8c2:

Sandbox Source
apollo-server-integration-aws-lambda Configuration

@BlenderDude BlenderDude merged commit 56e516a into main Jan 24, 2023
@BlenderDude BlenderDude deleted the changeset-release/main branch January 24, 2023 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant