/compress

Compress middleware for koa

Primary LanguageJavaScriptMIT LicenseMIT

Koa Compress

Build Status Greenkeeper badge

Compress middleware for Koa

Example

var compress = require('koa-compress')
var Koa = require('koa')

var app = new Koa()
app.use(compress({
  filter: function (content_type) {
  	return /text/i.test(content_type)
  },
  threshold: 2048,
  flush: require('zlib').Z_SYNC_FLUSH
}))

Options

The options are passed to zlib: http://nodejs.org/api/zlib.html#zlib_options

filter

An optional function that checks the response content type to decide whether to compress. By default, it uses compressible.

threshold

Minimum response size in bytes to compress. Default 1024 bytes or 1kb.

Manually turning compression on and off

You can always enable compression by setting this.compress = true. You can always disable compression by setting this.compress = false. This bypasses the filter check.

app.use((ctx, next) => {
  ctx.compress = true
  ctx.body = fs.createReadStream(file)
})