Socket
Socket
Sign inDemoInstall

compress-brotli

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compress-brotli

Simple cross Node.js inteface for using brotli compression


Version published
Weekly downloads
313K
increased by3.66%
Maintainers
1
Weekly downloads
 
Created
Source

compress-brotli

Last version Coverage Status NPM Status

Compress/Decompress using Brotli in a simple way.

Highlights

  • Handle edge cases (such as try to compress undefined).
  • JSON serialization/deserialization with Buffer support by default.
  • Easy tu customize (e.g., using v8 serialization).

Install

$ npm install compress-brotli --save

Usage

const createCompress = require('compress-brotli')

// It exposes compress/decompress methods
const { compress, decompress } = createCompress()

using v8 serialization:

const createCompress = require('compress-brotli')
const v8 = require('v8')

const { compress, decompress } = createCompress({
  serialize: v8.serialize,
  deserialize: v8.deserialize
})

customizing compress options:

const createCompress = require('compress-brotli')

const {
  constants: {
    BROTLI_MODE_TEXT,
    BROTLI_PARAM_MODE,
    BROTLI_PARAM_QUALITY
  }
} = require('zlib')

// Provide factory level default options
const { compress, decompress } = createCompress({
  compressOptions: {
    chunkSize: 1024,
    parameters: {
      [BROTLI_PARAM_MODE]: BROTLI_MODE_TEXT
    }
  },
  decompressOptions: {
    chunkSize: 1024,
    parameters: {
      [BROTLI_PARAM_MODE]: BROTLI_MODE_TEXT
    }
  }
})
const data = 'whatever'

// Override call level options (deep merge for parameters)
const compressed = compress(data, {
  parameters: {
    [BROTLI_PARAM_QUALITY]: 7
  }
})
decompress(compressed, {
  chunkSize: 2048
})

API

compressBrotli([options])

enable

Type: boolean
Default: false

If pass disable, it will return a noop compress/decompress methods.

serialize

Type: function
Default: JSONB.stringify

It determines the serialize method to use before compress the data.

deserialize

Type: function
Default: JSONB.parse

It determines the deserialize method to use after decompress the data.

compressOptions

Type: zlib.BrotliOptions
Default: {} i.e. default zlib.brotliCompress options will be used

It defines default options to be used in wrapped zlib.brotliCompress call

decompressOptions

Type: zlib.BrotliOptions
Default: {} i.e. default zlib.brotliDecompress options will be used

It defines default options to be used in wrapped zlib.brotliDecompress call

License

compress-brotli © Kiko Beats, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.

kikobeats.com · GitHub Kiko Beats · Twitter @Kikobeats

Keywords

FAQs

Package last updated on 24 Oct 2023

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc