UNPKG

1.63 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports["default"] = void 0;
7
8/* eslint-disable */
9var head = function head(iter) {
10 return iter.next().value;
11};
12
13var empty =
14/*#__PURE__*/
15regeneratorRuntime.mark(function __empty() {
16 return regeneratorRuntime.wrap(function __empty$(_context) {
17 while (1) {
18 switch (_context.prev = _context.next) {
19 case 0:
20 case "end":
21 return _context.stop();
22 }
23 }
24 }, __empty);
25})();
26
27var ensure = function ensure(iter) {
28 return iter && iter[Symbol.iterator] ? iter[Symbol.iterator]() : empty;
29};
30
31var branchBy = function branchBy(value, f) {
32 return value instanceof Promise ? value.then(f) : f(value);
33};
34
35var accumulate = function accumulate(acc, el, f) {
36 return el instanceof Promise ? el.then(function (v) {
37 return f(acc, v);
38 }, function (e) {
39 return Promise.reject(e);
40 }) : f(acc, el);
41};
42
43var Reduce = function __reduce(f, acc, iter) {
44 if (arguments.length === 1) return function () {
45 for (var _len = arguments.length, iter = new Array(_len), _key = 0; _key < _len; _key++) {
46 iter[_key] = arguments[_key];
47 }
48
49 return Reduce.apply(void 0, [f].concat(iter));
50 };
51 if (arguments.length === 2) return Reduce(f, head(iter = ensure(acc)), iter);
52 iter = ensure(iter);
53 var el;
54 return branchBy(acc, function recursively(acc) {
55 while (!(el = iter.next()).done) {
56 acc = accumulate(acc, el.value, f);
57
58 if (acc instanceof Promise) {
59 return acc.then(recursively);
60 }
61 }
62
63 return acc;
64 });
65};
66
67var _default = Reduce;
68exports["default"] = _default;
\No newline at end of file