@polka/compression
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-next.25 • Public • Published

@polka/compression npm licenses

An HTTP response compression middleware that supports native Gzip and Brotli. Works with Polka and Express!

Install

$ npm install --save @polka/compression

Usage

const polka = require('polka');
const compression = require('@polka/compression');

polka()
  .use(compression({ /* see options below */ }))
  .use((req, res) => {
    // this will get compressed:
    res.end('hello world!'.repeat(1000));
  })
  .listen();

API

compression(options?: Options): Middlware

The compression function creates a Polka/Express-compatible middleware function. When no options are defined, the defaults are used.

Options

All options use a default value when a value is not defined.

options.threshold

Type: Number
Default: 1024

Responses below this threshold (in bytes) are not compressed. The default value of 1024 is recommended, and avoids sharply diminishing compression returns.

options.level

Type: Number
Default: -1

The compression effort/level/quality setting, used by both Gzip and Brotli. The scale ranges from 1 to 11, where lower values are faster and higher values produce smaller output.

The default value of -1 uses the default compression level as defined by Gzip (6) and Brotli (6).

options.brotli

Type: boolean
Default: false

Enables response compression using Brotli for requests that support it.

Brotli incurs more performance overhead than Gzip, which is why it's not enabled by default.

options.gzip

Type: boolean
Default: true

Enables response compression using Gzip for requests that support it, as determined by the Accept-Encoding request header.

options.mimes

Type: RegExp
Default: /text|javascript|\/json|xml/i

The Content-Type response header is evaluated against this Regular Expression to determine if it is a MIME type that should be compressed.

NOTE: Remember that compression is (generally) only effective on textual content.

Support

Any issues or questions can be sent to the Polka repository.
However, please specify that your inquiry is about @polka/compression specifically.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i @polka/compression

Weekly Downloads

1,224

Version

1.0.0-next.25

License

MIT

Unpacked Size

12.1 kB

Total Files

6

Last publish

Collaborators

  • lukeed