Socket
Book a DemoInstallSign in
Socket

@rayo/compress

Package Overview
Dependencies
Maintainers
0
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rayo/compress

๐Ÿ—œ Rayo's compression

latest
Source
npmnpm
Version
1.4.0
Version published
Maintainers
0
Created
Source
@rayo/compress

Install

$> npm i @rayo/compress

Both Gzip and Brotli are supported, and the algorithm will be determined by the accept-encoding request header.
With multiple values/options (e.g. "gzip, deflate, br"), Gzip will be preferred.

Use

@rayo/compress is also compatible with Express and many other frameworks.

import rayo from 'rayo';
import compress from '@rayo/compress';

rayo({ port: 5050 })
  .through(compress())
  .get('/hello/:user', (req, res) => {
    res.setHeader('content-type', 'application/json');
    res.end(JSON.stringify({
      message: `Hello ${req.params.user}.
      I am compressed!`
    }));
  })
  .start();

Note: You need to set the right response header, e.g. application/json for @rayo/compress to be able to determine whether the payload can be compressed or not. Also keep in mind that not all types of content can be compressed.

@rayo/compress supports compression on these MIME types:

  • text/plain
  • text/csv
  • text/html
  • text/xml
  • text/javascript
  • application/json
  • application/xml

API

compress(options = {})

@param   {object} [options]
@returns {function}
  • options.preferBrotli (boolean, optional): Prefer Brotli if the accept-encoding request header has multiple values/options.
    Keep in mind that Brotli has more performance overhead than Gzip.
    Default: false.

  • options.threshold (number, optional): The minimum threshold (in bytes) for compressing responses.
    Default: 1024.

  • options.level (number, optional): The compression level to use.
    Range (gzip): 1 to 9.
    Range (brotli): 1 to 11.
    A higher level will result in better compression, but will take longer to complete. A lower level will result in less compression, but will be much faster.
    Default: 6.

  • options.chunkSize (number, optional): Brake large responses into chunks of this size (in kilobytes). While this setting can have an impact on speed, compression is affected most dramatically by the level setting.
    Default: 16.

License

MIT

FAQs

Package last updated on 02 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts