0.1.0 • Published 7 years ago

combine-middlewares v0.1.0

Weekly downloads
303
License
MIT
Repository
github
Last release
7 years ago

combine-middlewares

combine middlewares to one chain, supports async-await and recursive.

CircleCI

Usage

const combineMiddlewares = require('combine-middlewares')

recursive async-await

const double = async (num, next) => {
  await delay(10)
  return next(num * 2)
}
const minus1 = async (num, next) => {
  await delay(10)
  return next(num - 1)
}
const plus10 = async (num, next) => {
  await delay(10)
  return next(num + 10)
}

const [result] = await combineMiddlewares(double, minus1, plus10)(3)
assert.equal(result, 15)

express like

const auth = (req, res, next) => {
  if (!req.user) return res.error('no-user')
  next()
}
const validate = (req, res, next) => {
  if (!/^[a-zA-Z]+$/.test(req.data)) return res.error('no-alphabet')
  next()
}
const upcase = (req, res, next) => {
  res.end(req.data.toUpperCase())
}
const combined = combineMiddlewares(auth, validate, upcase)

see more examples in cd ./test