UNPKG

moltres-utils

Version:
136 lines (102 loc) 3.65 kB
"use strict"; require("core-js/modules/es6.object.define-property"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("core-js/modules/web.dom.iterable"); require("regenerator-runtime/runtime"); var _indexEndOffset = _interopRequireDefault(require("./indexEndOffset")); var _isArrayLike = _interopRequireDefault(require("./isArrayLike")); var _isGenerator = _interopRequireDefault(require("./isGenerator")); var _isPromise = _interopRequireDefault(require("./isPromise")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var generatorReduce = /*#__PURE__*/ regeneratorRuntime.mark(function generatorReduce(arrayLike, accum, iteratee, index) { var length; return regeneratorRuntime.wrap(function generatorReduce$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(0, _isGenerator.default)(accum)) { _context.next = 3; break; } return _context.delegateYield(accum, "t0", 2); case 2: accum = _context.t0; case 3: length = arrayLike.length; case 4: if (!(index < length)) { _context.next = 18; break; } accum = iteratee(accum, arrayLike[index], index); if (!(0, _isGenerator.default)(accum)) { _context.next = 11; break; } return _context.delegateYield(accum, "t1", 8); case 8: accum = _context.t1; _context.next = 15; break; case 11: if (!(0, _isPromise.default)(accum)) { _context.next = 15; break; } _context.next = 14; return accum; case 14: accum = _context.sent; case 15: index += 1; _context.next = 4; break; case 18: return _context.abrupt("return", accum); case 19: case "end": return _context.stop(); } } }, generatorReduce, this); }); var doArrayLikeReduce = function doArrayLikeReduce(arrayLike, accum, iteratee) { var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; var length = arrayLike.length; if ((0, _isPromise.default)(accum)) { return accum.then(function (resolvedAccum) { return doArrayLikeReduce(arrayLike, resolvedAccum, iteratee, index); }); } else if ((0, _isGenerator.default)(accum)) { return generatorReduce(arrayLike, accum, iteratee, index); } while (index < length) { accum = iteratee(accum, arrayLike[index], index); if ((0, _isPromise.default)(accum)) { return accum.then(function (resolvedAccum) { return doArrayLikeReduce(arrayLike, resolvedAccum, iteratee, index + 1); }); } else if ((0, _isGenerator.default)(accum)) { return generatorReduce(arrayLike, accum, iteratee, index + 1); } index += 1; } return accum; }; var arrayLikeReduce = function arrayLikeReduce(arrayLike, accum, iteratee) { var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; if (!(0, _isArrayLike.default)(arrayLike)) { throw new TypeError("arrayLikeReduce expected an array like value. Instead it received ".concat(arrayLike)); } var length = arrayLike.length; index = (0, _indexEndOffset.default)(index, length); return doArrayLikeReduce(arrayLike, accum, iteratee, index); }; var _default = arrayLikeReduce; exports.default = _default; //# sourceMappingURL=arrayLikeReduce.js.map