mkware

2.0.0 • Public • Published

mkware NPM Version Badge Node Version Badge Build Status Badge Coverage Badge

Make you a middleware pipe!

Installation

npm install --save mkware

or

yarn add mkware

Usage (normal)

var mkware = require('mkware');

var execute = mkware(
  function(object, next) {
    object.value += 1;
    next();
  },
  function(object, next) {
    object.value *= 2;
    next();
  },
  function(object, next) {
    object.value += 5;
    next();
  },
  function(value) {
    console.log(value);
  }
);

execute({ value: 5 }); // last middleware outputs 17

Usage (promise)

var mkware = require('mkware/promise');

var execute = mkware(
  function(object, next) {
    object.value += 1;
    next();
  },
  function(object, next) {
    object.value *= 2;
    next();
  },
  function(object, next) {
    object.value += 5;
    next();
  }
);

execute({ value: 5 }).then(function(object) {
  console.log(object.value); // 17
});

Builder

Need a more conventional way to set up your middleware? Try mkware-builder;

var mkware = require('mkware-builder');

var ware = mkware();

ware.use(function(object, next) {
    object.value += 1;
    next();
});

ware.use(function(object, next) {
    object.value *= 2;
    next();
});

ware.use(function(object, next) {
    object.value += 5;
    next();
});

ware.use(function(object) {
  console.log(object.value);
});

ware({ value: 5 }); // last middleware outputs 17

There is also a promise-based variant at mkware-builder/promise;

var mkware = require('mkware-builder/promise');

var ware = mkware();

ware.use(function(value, next) {
  next(value, value + 1);
});

ware.use(function(originalValue, value, next) {
  next(originalValue, value * 2);
});

ware.use(function(originalValue, value, next) {
  next(originalValue + value);
});

ware(5).then(function(value) {
  console.log(value); // 17
});

Readme

Keywords

none

Package Sidebar

Install

npm i mkware

Weekly Downloads

4

Version

2.0.0

License

LGPL-3.0

Unpacked Size

70.4 kB

Total Files

17

Last publish

Collaborators

  • jackwilsdon