5.1.2 • Published 1 year ago

express-msgpack v5.1.2

Weekly downloads
281
License
ISC
Repository
github
Last release
1 year ago

Express Msgpack

License Build Status Test Coverage Maintainability NPM Version

Express and MessagePack, together at last. Uses @msgpack/msgpack by default.

Functionality

Provides transparent middleware that can be used to support clients requesting Accept: application/msgpack from endpoints using res.json or sending Content-Type: application/msgpack to any endpoint. You can continue to use req.body and res.json and expressMsgpack will handle the conversion in the background using @msgpack/msgpack (or any compatible library of your choice).

Installation

$ npm install --save express-msgpack
// or
$ yarn add express-msgpack

If you intend to use an alternative to @msgpack/msgpack (see Configuration) you can add the --no-optional flag; it's an optional dependency.

Usage

import msgpack from "express-msgpack";

// ...
app.use(msgpack());

CommonJS

const msgpack = require("express-msgpack").default;

// ...
app.use(msgpack());

Configuration

To configure, pass options when you configure the middleware. Currently supported options are:

ParameterDescriptionDefault
decodera function converting from MessagePack to JavaScript@msgpack/msgpack#decode
encodera function converting from JavaScript to MessagePack@msgpack/msgpack#encode (with a wrapper to convert the result to a Buffer)
mimeTypethe MIME type to detect and set for MessagePack payloads"application/msgpack"
limitThe byte limit of the body. This is the number of bytes or any string format supported by bytes"100kb"

For example, to switch to the node-gyp C++ based msgpack library:

import msgpack from "express-msgpack";
import { pack, unpack } from "msgpack";

// ...
app.use(msgpack({ decoder: unpack, encoder: pack }));

Development

The project has code linting and testing, using the following commands:

  • npm run e2e: run the smoke/E2E tests
  • npm run lint: run the ESLint checks
  • npm run ship: lint and run unit, integration and E2E tests
  • npm test: run the Jest unit and integration tests
  • npm test:watch: run the tests in watch mode

The tests are in the __tests__/ directory and are run using Jest. They're split into two files:

  • unit.test.ts - mockist unit tests, to check specific internal details
  • integration.test.ts - integration tests using SuperTest with a simple Express app using the middleware

There is also a smoke/ directory containing E2E/smoke tests for a deployed version of the package, used by bin/smoke.sh. If the --local argument is supplied to the script the local version is packaged and tested , otherwise the specified $TAG version is installed from the registry and tested.

5.1.2

1 year ago

5.1.1

1 year ago

5.1.0

1 year ago

5.0.0

2 years ago

4.0.4

2 years ago

4.1.0

2 years ago

4.0.3

3 years ago

4.0.1

3 years ago

4.0.2

3 years ago

4.0.0

3 years ago

3.0.5

3 years ago

3.0.4

3 years ago

3.0.3

3 years ago

3.0.2

3 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

6 years ago

0.3.0

6 years ago

0.2.0

6 years ago

0.0.999

6 years ago

0.1.0

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago