Notebook Page Margin

    koa-compress
    DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/koa-compress package

    5.1.0 • Public • Published

    Koa Compress

    Node.js CI codecov

    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').constants.Z_SYNC_FLUSH
      },
      deflate: {
        flush: require('zlib').constants.Z_SYNC_FLUSH,
      },
      br: false // disable brotli
    }))

    Maintainers

    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. As of v5.1.0, the default quality level is 4 for performance reasons.

    options.defaultEncoding<String>

    An optional string, which specifies what encoders to use for requests without Accept-Encoding. Default identity.

    The standard dictates to treat such requests as * meaning that all compressions are permissible, yet it causes very practical problems when debugging servers with manual tools like curl, wget, and so on. If you want to enable the standard behavior, just set defaultEncoding to *.

    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)
    })

    Keywords

    none

    Install

    npm i koa-compress

    DownloadsWeekly Downloads

    295,992

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    12.5 kB

    Total Files

    6

    Last publish

    Collaborators

    • coderhaoxin
    • federomero
    • niftylettuce
    • aaron
    • juliangruber
    • eivifj
    • dead_horse
    • tjholowaychuk
    • jongleberry
    • fengmk2
    • titanism