Package Exports
- koa-compress
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 (koa-compress) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Koa Compress
Compress middleware for Koa
Example
const compress = require('koa-compress')
const Koa = require('koa')
const app = new Koa()
app.use(compress({
filter (content_type) {
return /text/i.test(content_type)
},
threshold: 2048,
gzip: {
flush: require('zlib').Z_SYNC_FLUSH
},
deflate: {
flush: require('zlib').Z_SYNC_FLUSH,
},
br: false // disable brotli
}))Options
filter<Function>
function (mimeType: string): Boolean {
}An optional function that checks the response content type to decide whether to compress. By default, it uses compressible.
options.threshold<String|Number>
Minimum response size in bytes to compress.
Default 1024 bytes or 1kb.
options[encoding]<Object>
The current encodings are, in order of preference: br, gzip, deflate.
Setting options[encoding] = {} will pass those options to the encoding function.
Setting options[encoding] = false will disable that encoding.
options.br
Brotli compression is supported in node v11.7.0+, which includes it natively.
Manually turning compression on and off
You can always enable compression by setting ctx.compress = true.
You can always disable compression by setting ctx.compress = false.
This bypasses the filter check.
app.use((ctx, next) => {
ctx.compress = true
ctx.body = fs.createReadStream(file)
})