Skip to content

Latest commit

 

History

History
88 lines (73 loc) · 2.41 KB

README.md

File metadata and controls

88 lines (73 loc) · 2.41 KB

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.

Installation

npm install @rill/chain

Example

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);
});

Contributions

  • Use npm test to run tests.

Please feel free to create a PR!