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

breeze

v1.2.2

Published

Functional async flow control library

Downloads

747

Readme

Breeze

Functional async flow control library. Turn your asynchronous code into bite-sized synchronous looking functions.

version License Downloads Dependencies

Install

Usage

Node.js / Browserify

var breeze = require('breeze')

API

  • breeze(step) - Initialize breeze flow system, supports initial .then method.
  • .pass(value) - Introduce new value into flow system, argument is appended to system arguments passed through next.
  • .when(check, step) - When check is truthy, add step to the stack
  • .maybe(check, step) - When check is truthy, add step to the stack, sugar for breeze.when
  • .some(check, step) - When check is truthy and no other some or none has ran, add to the stack
  • .none(step) - Whenever no some have ran, add callback to the stack
  • .then(step) - Add callback to stack
  • .each(iterables, iteratee, step) - Iterate over an object / array and invoke a method for each entry. iterables is not a reference therefore, you must properly store iterables outside of the flow if you plan to update or modify the object.
  • .catch(step) - Any error caught will terminate stack and be sent here
  • .deferred() - Returns a deferred promise system, allowing for a passable then / catch.
  • .reset() - Reset current system

Step

The step method passed through breeze has a very small API, providing any arguments stored within the system passed through either the next or .pass methods, and the next callback method which is explained below.

function step (next, arguments...)

Next

The next method is the step callback system, it provides utility for short-circuiting the step system with an error, passing additional arguments along the chain, and skipping steps completely.

return next(err, arguments...)

The next method supports additional modes explained below.

Errors

When a truthy err is passed the system will short-circuit (no other actions will be taken) and .catch will be triggered.

Promises

When a promise is passed the system will attach to either a then / catch or .then(success, catch) method style depending on the promise type passed.

Whenever the promises then / then success method is invoked, any arguments passed along with the initial promise are placed at the front of the arguments array, and the success arguments will be last.

This allows you to chain multiple promises while still passing values down the chain.

next(promise, arguments...)
Skipping Steps

When you pass the string skip as the first argument in the next method, the next step in the sequence will be skipped completely.

You can skip multiple steps by providing a number as the second argument to next equalling the number of steps you wish to skip. Defaults to 1.

next('skip', 1 /* optional; number of steps to skip */)

Examples

  • basic - Bare-bones example (breeze, then, catch)
  • promises - Returning and using promises within breeze (then, next(promise))
  • each - Breeze array iteration (then, pass, each, catch)
  • when - Conditional flows (then, when)

Check out the examples directory for more in-depth examples and tutorials of how to use breeze.

License

Licensed under The MIT License.