Throwback
Simple asynchronous middleware pattern.
Installation
npm install throwback --save
Usage
Compose asynchronous (promise-returning) functions.
const { compose } = require('throwback')
const fn = compose([
async function (ctx, next) {
console.log(1)
try {
await next()
} catch (err) {
console.log('throwback', err)
}
console.log(4)
},
async function (ctx, next) {
console.log(2)
return next()
}
])
fn({}, function (ctx) {
console.log(3)
ctx.status = 404
})
Tip: In development mode, debug
mode will throw errors when you do something unexpected. In production, faster non-error code paths are used.
Example
Build a micro HTTP server!
const { createServer } = require('http')
const finalhandler = require('finalhandler')
const { compose } = require('throwback')
const app = compose([
function ({ req, res }, next) {
res.end('Hello world!')
}
])
createServer(function (req, res) {
return app({ req, res }, finalhandler())
}).listen(3000)
Use Cases
Inspiration
Built for servie
and inspired by koa-compose
.
License
MIT