Comparing version 1.5.3 to 1.5.4
35
index.js
@@ -827,14 +827,31 @@ 'use strict' | ||
function step_through_callbacks (callbacks, args, extra, done) { | ||
function step_through_callbacks (callbacks, args, extra, done, index) { | ||
args = args !== undefined ? args : {} | ||
extra = extra || {} | ||
callbacks = (Array.isArray(callbacks)) ? callbacks : [callbacks] | ||
const callback = callbacks.shift() | ||
if (!index) { | ||
index = 0 | ||
if (typeof callback !== 'function') { | ||
throw new Error('Callback is not a function') | ||
if (!Array.isArray(callbacks)) { | ||
return callbacks(args, done, extra) | ||
} | ||
if (callbacks.length === 1) { | ||
return callbacks[index](args, done, extra) | ||
} | ||
return callbacks[index](args, (err, args) => { | ||
if (err) { | ||
return done(err, args) | ||
} | ||
return step_through_callbacks(callbacks, args, extra, done, ++index) | ||
}, extra) | ||
} | ||
return callback(args, (err, args) => { | ||
if (!callbacks[index]) { | ||
return done(null, args) | ||
} | ||
return callbacks[index](args, (err, args) => { | ||
if (err) { | ||
@@ -844,8 +861,4 @@ return done(err, args) | ||
if (callbacks.length === 0) { | ||
return done(err, args) | ||
} | ||
return step_through_callbacks(callbacks, args, extra, done) | ||
return step_through_callbacks(callbacks, args, extra, done, ++index) | ||
}, extra) | ||
} |
{ | ||
"name": "remit", | ||
"version": "1.5.3", | ||
"version": "1.5.4", | ||
"description": "A small set of functionality used to create microservices that don't need to be aware of one-another's existence.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
45333
760