Async pipe and run, inspired by MojiScript.
add npmignore so that lib is included


browse  log 



You can also use your local clone with git send-email.


This library exports only two functions that were inspired by [MojiScript][ms]:

  • pipeAsync to create an async pipe of functions
  • run to actually execute such a pipe


$ npm install mojipiperun


As in MojiScript, the run function accepts an object with 3 possible properties:

  • state : the initial state
  • dependencies : an object to inject as dependency to the main pipe
  • main : the main pipe to run

It returns a Promise.


The pipeAsync function takes an array of values, which may be functions. It returns a function that can be composed with other pipes and can be passed as main to run.

When executed, that function receives a value (state passed to run), and passes it down to the first function (or value) in the pipe. The returned value of that function (which is the value itself if it isn't a function, or the function's return value, or the Promise's resolved value if the function returns a promise) is then passed to the next function, until the last function executes and its returned value is that of run.

An error/thrown exception/rejected promise short-circuits the pipe and results in run returning a rejected promise.


MIT, like MojiScript's license.