Naturally Processed Meals

    express-msgpack
    TypeScript icon, indicating that this package has built-in type declarations

    4.0.2 • Public • Published

    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());

    Configuration

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

    Parameter Description Default
    decoder a function converting from MessagePack to JavaScript @msgpack/msgpack#decode
    encoder a function converting from JavaScript to MessagePack @msgpack/msgpack#encode (with a wrapper to convert the result to a Buffer)
    mimeType the MIME type to detect and set for MessagePack payloads "application/msgpack"

    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.

    Install

    npm i express-msgpack

    DownloadsWeekly Downloads

    508

    Version

    4.0.2

    License

    ISC

    Unpacked Size

    8.42 kB

    Total Files

    5

    Last publish

    Collaborators

    • textbook
    • express-msgpack-service