Skip to content
/ chain Public

⛓ Chain a series of functions and return a promise.

Notifications You must be signed in to change notification settings

rill-js/chain

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

⛓ Chain a series of functions and return a promise.

Resources

Stars

Watchers

Forks

Packages

No packages published