New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

putil-waterfall

Package Overview
Dependencies
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

putil-waterfall - npm Package Compare versions

Comparing version 1.2.1 to 2.0.0

49

lib/waterfall.js

@@ -10,2 +10,10 @@ /* putil-waterfall

const promisify = require('putil-promisify');
/**
*
* @param {Array<Function>} funcs
* @param {Function} [callback]
* @return {Promise|null}
*/
function waterfall(funcs, callback) {

@@ -16,7 +24,8 @@

if (!callback)
return promisify.fromCallback((cb) => waterfall(funcs, cb));
if (!Array.isArray(funcs))
throw new Error('Invalid argument. Array of functions are required as first argument');
callback = callback || function() {};
if (!funcs.length)

@@ -26,7 +35,6 @@ return callback();

let index = -1;
const next = function(error) {
const next = (error, ...args) => {
if (error)
return callback(error);
const args = Array.prototype.slice.call(arguments, 1);
index++;

@@ -36,7 +44,4 @@ const fn = funcs[index];

try {
const o = fn.apply(fn, [function() {
const args = arguments;
setImmediate(function() {
next.apply(null, args);
});
const o = fn.apply(fn, [(...args) => {
setImmediate(() => next.apply(null, args));
}].concat(args));

@@ -46,11 +51,11 @@ // If promise

typeof o.then === 'function' && typeof o.catch === 'function') {
o.catch(function(e) {
callback.apply(callback, [e].concat(args));
o.catch(e => {
callback.call(null, e, ...args);
});
}
} catch (e) {
callback.apply(callback, [e].concat(args));
callback.call(null, e, ...args);
}
} else
callback.apply(callback, [undefined].concat(args));
callback.call(null, undefined, ...args);
};

@@ -61,12 +66,22 @@

waterfall.every = function(funcArray, fn, callback) {
/**
*
* @param {Array<*>} values
* @param {Function} fn
* @param {Function} [callback]
* @return {Promise|null}
*/
waterfall.every = function(values, fn, callback) {
if (!Array.isArray(values))
throw new Error('Invalid argument. Array value are required as first argument');
if (callback && typeof callback !== 'function')
throw new Error('Invalid callback argument');
if (!Array.isArray(funcArray))
throw new Error('Invalid argument. Array value are required as first argument');
if (!callback)
return promisify.fromCallback((cb) => waterfall.every(values, fn, cb));
callback = callback || function() {};
const arr = funcArray.slice(0);
const arr = values.slice(0);
let index = -1;

@@ -73,0 +88,0 @@ const next = function(error, value) {

{
"name": "putil-waterfall",
"description": "Simple, fast async waterfall NodeJs module for JavaScript",
"version": "1.2.1",
"version": "2.0.0",
"author": "Panates Ltd.",

@@ -20,7 +20,8 @@ "contributors": [

],
"dependencies": {},
"dependencies": {
"putil-promisify": "^1.2.0"
},
"devDependencies": {
"babel-eslint": "^8.2.2",
"bluebird": "^3.5.1",
"eslint": "^5.1.0",
"babel-eslint": "^9.0.0",
"eslint": "^5.4.0",
"eslint-config-google": "^0.9.1",

@@ -31,3 +32,3 @@ "istanbul": "^0.4.5",

"engines": {
"node": ">= 4.0"
"node": ">= 6.0"
},

@@ -34,0 +35,0 @@ "directories": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc