Package Exports
- @middy/http-content-encoding
Readme
Middy http-content-encoding middleware
HTTP content encoding middleware for the middy framework, the stylish Node.js middleware engine for AWS Lambda
You can read the documentation at: https://middy.js.org/docs/middlewares/http-content-encoding
This middleware take the preferredEncoding output from @middy/http-content-negotiation and applies the encoding to response.body when a string.
Install
To install this middleware you can use NPM:
npm install --save @middy/http-content-encodingOptions
br(object) (default{}):zlib.createBrotliCompressbrotliOptionsgzip(object) (default{}):zlib.createGzipgzipOptionsdeflate(object) (default{}):zlib.createDeflatedeflateOptionsoverridePreferredEncoding(array[string]) (optional): Override the preferred encoding order, most browsers prefergzipoverbr, even thoughbrhas higher compression. Default:[]
NOTES:
- Important For
brencoding NodeJS defaults to11. Levels10&11have been shown to have lower performance for the level of compression they apply. Testing is recommended to ensure the right balance of compression & performance.
Sample usage
import middy from '@middy/core'
import httpContentNegotiation from '@middy/http-content-negotiation'
import httpContentEncoding from '@middy/http-content-encoding'
import { constants } from 'zlib'
const handler = middy((event, context) => {
return {
statusCode: 200,
body: '{...}'
}
})
handler
.use(httpContentNegotiation())
.use(httpCompressMiddleware({
br: {
params: {
[constants.BROTLI_PARAM_MODE]: constants.BROTLI_MODE_TEXT, // adjusted for UTF-8 text
[constants.BROTLI_PARAM_QUALITY]: 7
}
},
overridePreferredEncoding: ['br', 'gzip', 'deflate']
}))
export default { handler }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-2022 Luciano Mammino, will Farrell, and the Middy team.