promise.waterfall
Advanced tools
Comparing version 1.1.3 to 1.1.4
19
index.js
'use strict' | ||
var Promise = require('bluebird') | ||
var curry = require('ap').curry | ||
var assert = require('assert') | ||
@@ -8,11 +9,17 @@ | ||
var waterfall = function waterfall (promise, callback) { | ||
return promise.then(callback) | ||
} | ||
var reduce = curry(function reduce (fn, value) { | ||
return value.reduce(fn, Promise.resolve()) | ||
}) | ||
var reduceWaterfall = reduce(waterfall) | ||
function promiseWaterfall (callbacks) { | ||
assert(callbacks, 'missing argument promiseWaterfall.callbacks') | ||
if (!Array.isArray(callbacks)) return promiseWaterfall([callbacks]) | ||
return callbacks.reduce(waterfall, Promise.resolve()) | ||
return reduceWaterfall(callbacks) | ||
} | ||
function waterfall (promise, callback) { | ||
return promise.then(callback) | ||
} |
{ | ||
"name": "promise.waterfall", | ||
"version": "1.1.3", | ||
"version": "1.1.4", | ||
"description": "Runs an array of promises in series, each passing their results to the next promise in the array.", | ||
@@ -38,2 +38,3 @@ "main": "index.js", | ||
"dependencies": { | ||
"ap": "^0.2.0", | ||
"assert": "^1.3.0", | ||
@@ -40,0 +41,0 @@ "bluebird": "^3.1.1" |
2744
17
3