UNPKG

moltres-utils

Version:
130 lines (98 loc) 3.59 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 _isInteger = _interopRequireDefault(require("./isInteger")); var _isPromise = _interopRequireDefault(require("./isPromise")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var generatorReduceRight = /*#__PURE__*/ regeneratorRuntime.mark(function generatorReduceRight(arrayLike, accum, iteratee, index) { return regeneratorRuntime.wrap(function generatorReduceRight$(_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: if (!(index >= 0)) { _context.next = 17; break; } accum = iteratee(accum, arrayLike[index], index); if (!(0, _isGenerator.default)(accum)) { _context.next = 10; break; } return _context.delegateYield(accum, "t1", 7); case 7: accum = _context.t1; _context.next = 14; break; case 10: if (!(0, _isPromise.default)(accum)) { _context.next = 14; break; } _context.next = 13; return accum; case 13: accum = _context.sent; case 14: index -= 1; _context.next = 3; break; case 17: return _context.abrupt("return", accum); case 18: case "end": return _context.stop(); } } }, generatorReduceRight, this); }); var doArrayLikeReduceRight = function doArrayLikeReduceRight(arrayLike, accum, iteratee, index) { if ((0, _isPromise.default)(accum)) { return accum.then(function (resolvedAccum) { return doArrayLikeReduceRight(arrayLike, resolvedAccum, iteratee, index); }); } else if ((0, _isGenerator.default)(accum)) { return generatorReduceRight(arrayLike, accum, iteratee, index); } while (index >= 0) { accum = iteratee(accum, arrayLike[index], index); if ((0, _isPromise.default)(accum)) { return accum.then(function (resolvedAccum) { return doArrayLikeReduceRight(arrayLike, resolvedAccum, iteratee, index - 1); }); } else if ((0, _isGenerator.default)(accum)) { return generatorReduceRight(arrayLike, accum, iteratee, index - 1); } index -= 1; } return accum; }; var arrayLikeReduceRight = function arrayLikeReduceRight(arrayLike, accum, iteratee, index) { if (!(0, _isArrayLike.default)(arrayLike)) { throw new TypeError("arrayLikeReduceRight expected an array like value. Instead it received ".concat(arrayLike)); } var length = arrayLike.length; index = (0, _isInteger.default)(index) ? index : length - 1; index = (0, _indexEndOffset.default)(index, length); return doArrayLikeReduceRight(arrayLike, accum, iteratee, index); }; var _default = arrayLikeReduceRight; exports.default = _default; //# sourceMappingURL=arrayLikeReduceRight.js.map