Package Exports
- @middy/http-event-normalizer
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@middy/http-event-normalizer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Middy http-event-normalizer middleware
HTTP error handler middleware for the middy framework, the stylish Node.js middleware engine for AWS Lambda
If you need to access the query string or path parameters in an API Gateway event you
can do so by reading the attributes in event.queryStringParameters, event.multiValueQueryStringParameters and
event.pathParameters, for example: event.pathParameters.userId. Unfortunately
if there are no parameters for these parameter holders, the relevant key queryStringParameters, multiValueQueryStringParameters or pathParameters won't be available in the object, causing an expression like event.pathParameters.userId
to fail with the error: TypeError: Cannot read property 'userId' of undefined.
A simple solution would be to add an if statement to verify if the pathParameters (or queryStringParameters/multiValueQueryStringParameters)
exists before accessing one of its parameters, but this approach is very verbose and error prone.
This middleware normalizes the API Gateway event, making sure that an object for
queryStringParameters, multiValueQueryStringParameters and pathParameters is always available (resulting in empty objects
when no parameter is available), this way you don't have to worry about adding extra if
statements before trying to read a property and calling event.pathParameters.userId will
result in undefined when no path parameter is available, but not in an error.
Install
To install this middleware you can use NPM:
npm install --save @middy/http-event-normalizerOptions
This middleware does not have any option
Sample usage
const middy = require('@middy/core')
const httpEventNormalizer = require('@middy/http-event-normalizer')
const handler = middy((event, context, cb) => {
console.log(`Hello user ${event.pathParameters.userId}`) // might produce `Hello user #undefined`, but not an error
cb(null, {})
})
handler.use(httpEventNormalizer())Middy documentation and examples
For more documentation and examples, refers to the main Middy monorepo on GitHub or Middy official website.
Contributing
Everyone is very welcome to contribute to this repository. Feel free to raise issues or to submit Pull Requests.
License
Licensed under MIT License. Copyright (c) 2017-2018 Luciano Mammino and the Middy team.