This module is used internally by Rill but is extracted for convenience. Composes all functions and Rill apps provided into a valid middleware function that returns a promise.
npm install @rill/chain
import chain from "@rill/chain";
const stack = [];
// Regular functions that return anything
// but they will be resolved as promises.
stack.push((ctx, next)=> {
return Promise.resolve(true);
})
// Async/await functions
stack.push(async (ctx, next)=> {
await Promise.resolve(true);
});
// Other apps.
const app = new Rill();
app.use(...);
stack.push(app);
// Compose it into a function (returns a promise).
const fn = chain(stack)
// Call the function with a context.
fn({}).catch((err)=> {
console.error(err.stack);
process.exit(1);
});
- Use
npm test
to run tests.
Please feel free to create a PR!