occam-languages 1.0.43 → 1.0.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,9 @@ _export(exports, {
21
21
  get forEach () {
22
22
  return forEach;
23
23
  },
24
+ get reduce () {
25
+ return reduce;
26
+ },
24
27
  get resolve () {
25
28
  return resolve;
26
29
  },
@@ -65,6 +68,18 @@ function every(array, callback, ...remainingArguments) {
65
68
  continuation(success);
66
69
  });
67
70
  }
71
+ function reduce(array, initialValue, callback, ...remainingArguments) {
72
+ let value = initialValue; ///
73
+ const continuation = remainingArguments.pop();
74
+ asynchronousForEach(array, (element, next, done)=>{
75
+ callback(value, element, ...remainingArguments, (currentValue)=>{
76
+ value = currentValue; ///
77
+ next();
78
+ });
79
+ }, ()=>{
80
+ continuation(value);
81
+ });
82
+ }
68
83
  function forEach(array, callback, ...remainingArguments) {
69
84
  const continuation = remainingArguments.pop();
70
85
  asynchronousForEach(array, (element, next, done)=>{
@@ -144,10 +159,11 @@ function unbreakable(innerFunction) {
144
159
  const _default = {
145
160
  some,
146
161
  every,
162
+ reduce,
147
163
  forEach,
148
164
  resolve,
149
165
  breakable,
150
166
  unbreakable
151
167
  };
152
168
 
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBuZXh0KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgYXJyYXlBID0gWyAgLy8vXG4gICAgLi4uYXJyYXlBXG4gIF07XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgICBpZiAoYXJyYXlBTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTsgIC8vL1xuXG4gICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgbGV0IGNvdW50ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCgpIHtcbiAgICAgIGNvdW50Kys7XG5cbiAgICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChjb3VudCA9PT0gYXJyYXlBTGVuZ3RoKTtcblxuICAgICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7IC8vL1xuXG4gICAgICAgICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuZXh0UGFzcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjb3VudCwgIC8vL1xuICAgICAgICAgICAgICBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgY2FsbGJhY2soZWxlbWVudEEsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgaW5uZXJGdW5jdGlvbkxlbmd0aCA9IGlubmVyRnVuY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICByZXN1bHQgPSBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNvbWUsXG4gIGV2ZXJ5LFxuICBmb3JFYWNoLFxuICByZXNvbHZlLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiZXZlcnkiLCJmb3JFYWNoIiwicmVzb2x2ZSIsInNvbWUiLCJ1bmJyZWFrYWJsZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJhcnJheUEiLCJhcnJheUIiLCJuZXh0UGFzcyIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwi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
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgaW5pdGlhbFZhbHVlLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2sodmFsdWUsIGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHZhbHVlKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgbmV4dCk7XG4gIH0sIGNvbnRpbnVhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGFycmF5QSA9IFsgIC8vL1xuICAgIC4uLmFycmF5QVxuICBdO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBmdW5jdGlvbiBuZXh0UGFzcygpIHtcbiAgICBjb25zdCBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoO1xuXG4gICAgaWYgKGFycmF5QUxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7ICAvLy9cblxuICAgICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgIGxldCBjb3VudCA9IC0xO1xuXG4gICAgZnVuY3Rpb24gbmV4dEVsZW1lbnQoKSB7XG4gICAgICBjb3VudCsrO1xuXG4gICAgICBjb25zdCB0ZXJtaW5hdGUgPSAoY291bnQgPT09IGFycmF5QUxlbmd0aCk7XG5cbiAgICAgIGlmICh0ZXJtaW5hdGUpIHtcbiAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGZhbHNlOyAvLy9cblxuICAgICAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5RmlsdGVyKGFycmF5QSwgKGVsZW1lbnRBKSA9PiB7XG4gICAgICAgICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICAgICAgICBpZiAoIWFycmF5QkluY2x1ZGVzRWxlbWVudEEpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgbmV4dFBhc3MoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gY291bnQsICAvLy9cbiAgICAgICAgICAgICAgZWxlbWVudEEgPSBhcnJheUFbaW5kZXhdO1xuXG4gICAgICAgIGNhbGxiYWNrKGVsZW1lbnRBLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50QiA9IGVsZW1lbnRBOyAgLy8vXG5cbiAgICAgICAgICAgIGFycmF5Qi5wdXNoKGVsZW1lbnRCKTtcblxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbmV4dEVsZW1lbnQoKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV4dEVsZW1lbnQoKTtcbiAgfVxuXG4gIG5leHRQYXNzKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLmJyZWFrKGNvbnRleHQsICgpID0+IHtcbiAgICAgIGlmIChpbm5lckZ1bmN0aW9uTGVuZ3RoID09PSByZW1haW5pbmdBcmd1bWVudHNMZW5ndGgpIHtcbiAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgY29udGludWF0aW9uKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuYnJlYWthYmxlKGlubmVyRnVuY3Rpb24pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBzb21lLFxuICBldmVyeSxcbiAgcmVkdWNlLFxuICBmb3JFYWNoLFxuICByZXNvbHZlLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiZXZlcnkiLCJmb3JFYWNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJ1bmJyZWFrYWJsZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImN1cnJlbnRWYWx1ZSIsImFycmF5QSIsImFycmF5QiIsIm5leHRQYXNzIiwiYXJyYXlBTGVuZ3RoIiwibGVuZ3RoIiwiY291bnQiLCJuZXh0RWxlbWVudCIsInRlcm1pbmF0ZSIsImVsZW1lbnRBIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwiaW5kZXgiLCJlbGVtZW50QiIsInB1c2giLCJpbm5lckZ1bmN0aW9uIiwicmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoIiwiaW5uZXJGdW5jdGlvbkxlbmd0aCIsImNvbnRleHQiLCJicmVhayIsImNhbGwiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWdKZ0JBO2VBQUFBOztRQXVDaEI7ZUFBQTs7UUExSmdCQztlQUFBQTs7UUFzQ0FDO2VBQUFBOztRQWhCQUM7ZUFBQUE7O1FBd0JBQztlQUFBQTs7UUFwRUFDO2VBQUFBOztRQThKQUM7ZUFBQUE7OzsyQkFuS3NDO0FBRXRELE1BQU0sRUFBRUMsUUFBUUMsV0FBVyxFQUFFLEdBQUdDLHlCQUFjLEVBQ3hDLEVBQUVQLFNBQVNRLG1CQUFtQixFQUFFLEdBQUdDLGdDQUFxQjtBQUV2RCxTQUFTTixLQUFLTyxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDekQsSUFBSUMsVUFBVTtJQUVkLE1BQU1DLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1Asb0JBQW9CRSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ3pDUCxTQUFTSyxZQUFZSixvQkFBb0IsQ0FBQ087WUFDeEMsSUFBSUEsUUFBUTtn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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "1.0.43",
4
+ "version": "1.0.45",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -49,6 +49,22 @@ export function every(array, callback, ...remainingArguments) {
49
49
  });
50
50
  }
51
51
 
52
+ export function reduce(array, initialValue, callback, ...remainingArguments) {
53
+ let value = initialValue; ///
54
+
55
+ const continuation = remainingArguments.pop();
56
+
57
+ asynchronousForEach(array, (element, next, done) => {
58
+ callback(value, element, ...remainingArguments, (currentValue) => {
59
+ value = currentValue; ///
60
+
61
+ next();
62
+ });
63
+ }, () => {
64
+ continuation(value);
65
+ });
66
+ }
67
+
52
68
  export function forEach(array, callback, ...remainingArguments) {
53
69
  const continuation = remainingArguments.pop();
54
70
 
@@ -168,6 +184,7 @@ export function unbreakable(innerFunction) {
168
184
  export default {
169
185
  some,
170
186
  every,
187
+ reduce,
171
188
  forEach,
172
189
  resolve,
173
190
  breakable,