Warewolf
Savage Async Middleware. 🐺
Connect style middleware with promise support.
Install
npm i warewolf --save
Usage
Warewolf generates a function that can be called with any number of arguments.
Every function passed will asynchronously wait for a promise to be returned or next
to be called.
Middleware
; const handler = ; ;// prints [null, 'success']
Composer
Wrap each step - even pass different args!
; const handler = { // middleware ; } { // after all middleware has been called ; }; ;// prints 'BEFORE'// prints 'AFTER'// prints 'BEFORE'// prints 'AFTER'// prints [null, 'success']
Errors
Just like connect, we'll stop iteration if next receives a value or if an error is thrown.
; const handler = ; ;// prints 'error'
Also, just like express, if you add a middleware method with an arity + 1 of the main stack call, warewolf treats this method like an error handler.
; const handler = ; ;// prints 'error'// prints 'success'
Composed middleware
; const ware1 = ; const ware2 = ; const handler = ); ;// prints [null, 'success']
Promises
You can also return promises instead of calling next.
; const handler = ; ;// prints 'success'
Gotchas
Middleware Arity
Unless you are creating an error handler, whatever you final handler accepts as arguments will be the number of arguments passed to your middleware, so it needs to be uniform!
Getting around this isn't that hard though.
{ // middleware ;} { } const handler = ; ;
License
MIT