Skip to content

A simple request handler (controller/middleware) chainer

License

Notifications You must be signed in to change notification settings

zishone/chaindler

Repository files navigation

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.

About

A simple request handler (controller/middleware) chainer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published