middleware-if-unless

    1.3.0 • Public • Published

    Introduction

    Invokes connect-like middleware if / unless routing criteria match.

    Inspired by the express-unless module.

    Main features

    • Advanced routes matching capabilities. Uses find-my-way or any compatible router to match the routes.
    • iff: execute middleware only if routing criteria is a match. Ideal use case: API gateways (see: fast-gateway)
    • unless: execute middleware unless routing criteria is a match.
    • Arbitraty chaining of iff -> unless of vice-versa.
    • Low overhead, blazing fast implementation.

    Usage

    Install

    npm i middleware-if-unless

    Extending middleware

    const iu = require('middleware-if-unless')()
    
    const middleware = function (req, res, next) {
      res.body = 'hit'
    
      return next()
    }
    
    // extend middleware with iff/unless capabilities
    iu(middleware)

    unless

    Execute middleware unless routing criteria is a match:

    const app = require('express')()
    app.use(middleware.unless([
      '/not/allowed/to/hit'
    ]))
    
    ...

    In this example, all requests except [GET] /not/allowed/to/hit will cause the middleware to be executed.

    iff

    Execute middleware only if routing criteria is a match:

    const app = require('express')()
    app.use(middleware.iff([
      {
        methods: ['POST', 'DELETE', 'PUT', 'PATCH'],
        url: '/tasks/:id'
      }
    ]))
    
    ...

    In this example, only a [POST|DELETE|PUT|PATCH] /tasks/:id request will cause the middleware to be executed.

    More

    Install

    npm i middleware-if-unless

    DownloadsWeekly Downloads

    1,152

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    5.92 kB

    Total Files

    4

    Last publish

    Collaborators

    • jkyberneees