UNPKG

combine-middlewares

Version:

combine middlewares to one chain, supports async-await and recursive.

32 lines (26 loc) 2.39 kB
"use strict"; 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); } } module.exports = function () { for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { middlewares[_key] = arguments[_key]; } return function () { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } var chain = middlewares.concat(function () { for (var _len3 = arguments.length, _args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { _args[_key3] = arguments[_key3]; } return _args.slice(0, args.length); }); var next = function next() { for (var _len4 = arguments.length, _args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { _args[_key4] = arguments[_key4]; } return chain.shift().apply(undefined, _toConsumableArray(_args.length > 0 ? _args : args).concat([next])); }; return next(); }; }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwibWlkZGxld2FyZXMiLCJhcmdzIiwiY2hhaW4iLCJjb25jYXQiLCJfYXJncyIsInNsaWNlIiwibGVuZ3RoIiwibmV4dCIsInNoaWZ0Il0sIm1hcHBpbmdzIjoiOzs7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUI7QUFBQSxvQ0FBSUMsV0FBSjtBQUFJQSxlQUFKO0FBQUE7O0FBQUEsU0FBb0IsWUFBYTtBQUFBLHVDQUFUQyxJQUFTO0FBQVRBLFVBQVM7QUFBQTs7QUFDaEQsUUFBTUMsUUFBUUYsWUFBWUcsTUFBWixDQUFtQjtBQUFBLHlDQUFJQyxLQUFKO0FBQUlBLGFBQUo7QUFBQTs7QUFBQSxhQUFjQSxNQUFNQyxLQUFOLENBQVksQ0FBWixFQUFlSixLQUFLSyxNQUFwQixDQUFkO0FBQUEsS0FBbkIsQ0FBZDtBQUNBLFFBQU1DLE9BQU8sU0FBUEEsSUFBTztBQUFBLHlDQUFJSCxLQUFKO0FBQUlBLGFBQUo7QUFBQTs7QUFBQSxhQUFjRixNQUFNTSxLQUFOLHVDQUFrQkosTUFBTUUsTUFBTixHQUFlLENBQWYsR0FBbUJGLEtBQW5CLEdBQTJCSCxJQUE3QyxVQUFvRE0sSUFBcEQsR0FBZDtBQUFBLEtBQWI7QUFDQSxXQUFPQSxNQUFQO0FBQ0QsR0FKZ0I7QUFBQSxDQUFqQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKC4uLm1pZGRsZXdhcmVzKSA9PiAoLi4uYXJncykgPT4ge1xuICBjb25zdCBjaGFpbiA9IG1pZGRsZXdhcmVzLmNvbmNhdCgoLi4uX2FyZ3MpID0+IF9hcmdzLnNsaWNlKDAsIGFyZ3MubGVuZ3RoKSlcbiAgY29uc3QgbmV4dCA9ICguLi5fYXJncykgPT4gY2hhaW4uc2hpZnQoKSguLi4oX2FyZ3MubGVuZ3RoID4gMCA/IF9hcmdzIDogYXJncyksIG5leHQpXG4gIHJldHVybiBuZXh0KClcbn1cbiJdfQ==