npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@andimeier/promise-chain

v0.0.1

Published

flexible configuration of chained and parallel promises

Downloads

12

Readme

Promise-chain

This lib aims to make a network of promises easily configurable. Rejection of a promise should not lead per se to an overall rejection, but you can define an "on reject" handler (another promise following in the "reject" case).

Terminology

  • "chain" ... the chained promises
  • "chain item" ... one promise plus its metadata for linking it within the chain

Basic Usage

Include the lib in your app:

const promiseChain = require('promise-chain');

You can switch on debugging output with:

const promiseChain = require('promise-chain');
promiseChain.setDeubg(true);

Specifying a promise chain

A "chain item" is nothing else than a promise returning function plus a couple of properties which define the chaining behavior.

Recognized properties are:

  • promise ... {function} the promise returning function
  • onResolve ... {ChainItem} the next chain item to be executed on success of the current item
  • onReject ... {ChainItem} the next chain item to be executed if the current item rejects
  • name ...{string} an identifier string. This is used a the key for the errors object
  • setError ... {boolean} if set, a rejected promise will even be registered in the errors structure of the result object if it has an onReject successor. If false,a rejected promise with a onReject successor will not produce an error. A rejected promise without an onReject setting will always produce an error. Default is false.
  • errorKey ... {string} (optional) if set then this key will be used in the errors objects. If this property is omitted, the property name will be used per default. This property should help you collecting possibly many promises in the chain into one error "candidate". For example, to populate input fields in a HTML form, it helps to assign several tests for one field to the one field name. In this case, you would set errorKey according to the name of the HTML form field while leaving name uniqu (for tracking and debugging purposes)

Returned result object:

  • errors ... an object consisting of all error objects of the rejected promises. Key is the chain link name (property name) and value is the rejection value, whatever this is
  • success ... an array listing all resolved promises