- #197
5ee8ee8Thanks @jay-l-e-e! - Fixed an issue where Apollo V4 was being installed because peer dependencies were not restricted to Apollo V5.
- #194
6ddf17bThanks @jay-l-e-e! - Upgrade all essential dependencies to support apollo server v5
- #122
d1e8271Thanks @BlenderDude! - Fixes missingdecodeURIComponentduring GET request parsing of query string for ALB and V1 event
- #110
e76fc08Thanks @trevor-scheer! - Drop support for Node v14
-
#91
71c94dfThanks @BlenderDude! - ## Short circuit middleware executionYou can now opt to return a Lambda result object directly from the middleware. This will cancel the middleware chain, bypass GraphQL request processing, and immediately return the Lambda result.
Example
export const handler = startServerAndCreateLambdaHandler( server, handlers.createAPIGatewayProxyEventV2RequestHandler(), { context: async () => { return {}; }, middleware: [ async (event) => { const psk = Buffer.from('SuperSecretPSK'); const token = Buffer.from(event.headers['X-Auth-Token']); if ( psk.byteLength !== token.byteLength || crypto.timingSafeEqual(psk, token) ) { return { statusCode: '403', body: 'Forbidden', }; } }, ], }, );
- #81
b59291aThanks @0x6368656174! - fix search params duplication
-
#67
5669d23Thanks @BlenderDude! -In the interest of supporting more event types and allowing user-extensibility, the event parsing has been re-architected. 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).
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 }; }, ], }, );
The upgrade from v1.x to v2.0.0 is quite simple, just update your
startServerAndCreateLambdaHandlerwith 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.
- #73
8a1a6f4Thanks @trevor-scheer! - Remove postinstall script which causes issues for non-TS users
- #66
cea20ffThanks @BlenderDude! - Added support for base64 encoding
- #40
74666b4Thanks @BlenderDude! - ALB Event type integration
- #35
636326bThanks @BlenderDude! - Updated headers to HeaderMap implementation for case normalization
-
#32
accacb2Thanks @christiangaetano! - Downcase all header keys during normalization -
#30
39efda1Thanks @christiangaetano! - Correctly recognize gateway v1 events
- #27
2ec397fThanks @trevor-scheer! - Official support for Apollo Server v4.0.0
- #20
8ae797fThanks @trevor-scheer! - Update AS dependencies which incorporate a new response shape for supporting incremental delivery (which will not be supported by serverless integrations like this one)
- #11
09194e5Thanks @michael-watson! - Initial Publish