@zishone/chaindler
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

chaindler NPM Build Coverage License

A simple request handler (controller/middleware) chainer.

Installation

$ npm i @zishone/chaindler

Usage

1. Import chaindler

const { Chain } = require('@zishone/chaindler');

2. Write your middlewares

function mw1 (req, res, next) {
  console.log('1');
  next();
}

function mw2 (req, res, next) {
  console.log('2');
  next();
}

function mw3 (req, res, next) {
  console.log('3');
  next();
}

3. Write your controller

function controller (req, res, next) {
  res.send('hello');
}

4. Chain them up!

import express = require('express');
const app = express();
app.use('/hello', new Chain(mw1, mw2, mw3).handle(controller));

NOTE: Example was with the assumption you are using express.js

This module was developed with Node.js servers that uses swagger-node, express-openapi, and other kinds of modules that limits your ability to chain middlewares in mind.

These kinds of modules would require you to have your controllers in an object, and to use chaindler in that scenario would be something like this:

const controllers = {
  operation1: new Chain(mw1, mw2, mw3).handle(controller),
  operation2: new Chain(mw1, mw2, mw3).handle(controller),
}

Authors

  • Zishran Garces

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Package Sidebar

Install

npm i @zishone/chaindler

Weekly Downloads

0

Version

0.1.1

License

MIT

Unpacked Size

8.82 kB

Total Files

9

Last publish

Collaborators

  • zishone