pipeline.js

return function() {
// посмотреть может быть нужно убрать setImmediate?!
var args = Array.prototype.slice.call(arguments);
args.unshift(fn);
setImmediate.apply(null, args);
};

}

exports.failproofSyncCall = failproofSyncCall;

return function() {
// посмотреть может быть нужно убрать setImmediate?!
var args = Array.prototype.slice.call(arguments);
args.unshift(fn);
setImmediate.apply(null, args);
};

}

exports.failproofAsyncCall = failproofAsyncCall;

function ErrorList(list) {
  var self = this;
  if (!(self instanceof ErrorList)) {
    throw new Error('constructor is not a function');
  }
  Error.apply(self);
  self.message = "Complex Error";
  self.errors = list;
}

ErrorList.prototype.errors = undefined;
exports.Util.inherits(ErrorList, Error);

exports.ErrorList = ErrorList;