nexterr
Version:
Generic middleware based on (next, err, ...args) pattern.
53 lines (45 loc) • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var nextErr = exports.nextErr = function nextErr(fn) {
for (var _len = arguments.length, fns = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
fns[_key - 1] = arguments[_key];
}
if (fn instanceof Array) {
return nextErr.apply(undefined, _toConsumableArray(fn).concat(fns));
}
if (!fn && fns.length === 0) {
return function (next, err) {
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
args[_key2 - 2] = arguments[_key2];
}
return next.apply(undefined, [err].concat(args));
};
}
if (!fn) {
return nextErr.apply(undefined, [nextErr()].concat(fns));
}
var result = function result(next1, err1) {
for (var _len3 = arguments.length, input = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
input[_key3 - 2] = arguments[_key3];
}
var next2 = function next2(err2) {
for (var _len4 = arguments.length, output = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
output[_key4 - 1] = arguments[_key4];
}
return nextErr.apply(undefined, fns).apply(undefined, [next1, err2].concat(output));
};
setImmediate(function () {
return fn.apply(undefined, [next2, err1].concat(input));
});
};
result.nextErr = function () {
for (var _len5 = arguments.length, fns = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
fns[_key5] = arguments[_key5];
}
return nextErr.apply(undefined, [result].concat(fns));
};
return result;
};