rubico 2.0.0 → 2.0.1
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.
- package/README.md +158 -81
- package/build +257 -280
- package/dist/Transducer.es.js +481 -0
- package/dist/Transducer.es.min.js +7 -0
- package/dist/Transducer.js +488 -0
- package/dist/Transducer.min.js +8 -0
- package/dist/Transducer.mjs +481 -0
- package/dist/__.es.js +1 -1
- package/dist/__.es.min.js +1 -1
- package/dist/__.js +1 -1
- package/dist/__.min.js +1 -1
- package/dist/__.mjs +1 -1
- package/dist/all.es.js +1 -1
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +1 -1
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +1 -1
- package/dist/always.es.js +1 -1
- package/dist/always.es.min.js +1 -1
- package/dist/always.js +1 -1
- package/dist/always.min.js +1 -1
- package/dist/always.mjs +1 -1
- package/dist/and.es.js +1 -1
- package/dist/and.es.min.js +1 -1
- package/dist/and.js +1 -1
- package/dist/and.min.js +1 -1
- package/dist/and.mjs +1 -1
- package/dist/assign.es.js +1 -1
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +1 -1
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +1 -1
- package/dist/compose.es.js +1 -1
- package/dist/compose.es.min.js +1 -1
- package/dist/compose.js +1 -1
- package/dist/compose.min.js +1 -1
- package/dist/compose.mjs +1 -1
- package/dist/curry.es.js +1 -1
- package/dist/curry.es.min.js +1 -1
- package/dist/curry.js +1 -1
- package/dist/curry.min.js +1 -1
- package/dist/curry.mjs +1 -1
- package/dist/eq.es.js +1 -1
- package/dist/eq.es.min.js +1 -1
- package/dist/eq.js +1 -1
- package/dist/eq.min.js +1 -1
- package/dist/eq.mjs +1 -1
- package/dist/every.es.js +1 -1
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +1 -1
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +1 -1
- package/dist/filter.es.js +1 -1
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +1 -1
- package/dist/flatMap.es.js +1 -1
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +1 -1
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +1 -1
- package/dist/forEach.es.js +1 -1
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +1 -1
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +1 -1
- package/dist/get.es.js +1 -1
- package/dist/get.es.min.js +1 -1
- package/dist/get.js +1 -1
- package/dist/get.min.js +1 -1
- package/dist/get.mjs +1 -1
- package/dist/gt.es.js +1 -1
- package/dist/gt.es.min.js +1 -1
- package/dist/gt.js +1 -1
- package/dist/gt.min.js +1 -1
- package/dist/gt.mjs +1 -1
- package/dist/gte.es.js +1 -1
- package/dist/gte.es.min.js +1 -1
- package/dist/gte.js +1 -1
- package/dist/gte.min.js +1 -1
- package/dist/gte.mjs +1 -1
- package/dist/lt.es.js +1 -1
- package/dist/lt.es.min.js +1 -1
- package/dist/lt.js +1 -1
- package/dist/lt.min.js +1 -1
- package/dist/lt.mjs +1 -1
- package/dist/lte.es.js +1 -1
- package/dist/lte.es.min.js +1 -1
- package/dist/lte.js +1 -1
- package/dist/lte.min.js +1 -1
- package/dist/lte.mjs +1 -1
- package/dist/map.es.js +1 -1
- package/dist/map.es.min.js +1 -1
- package/dist/map.js +1 -1
- package/dist/map.min.js +1 -1
- package/dist/map.mjs +1 -1
- package/dist/not.es.js +1 -1
- package/dist/not.es.min.js +1 -1
- package/dist/not.js +1 -1
- package/dist/not.min.js +1 -1
- package/dist/not.mjs +1 -1
- package/dist/omit.es.js +1 -1
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +1 -1
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +1 -1
- package/dist/or.es.js +1 -1
- package/dist/or.es.min.js +1 -1
- package/dist/or.js +1 -1
- package/dist/or.min.js +1 -1
- package/dist/or.mjs +1 -1
- package/dist/pick.es.js +1 -1
- package/dist/pick.es.min.js +1 -1
- package/dist/pick.js +1 -1
- package/dist/pick.min.js +1 -1
- package/dist/pick.mjs +1 -1
- package/dist/pipe.es.js +1 -1
- package/dist/pipe.es.min.js +1 -1
- package/dist/pipe.js +1 -1
- package/dist/pipe.min.js +1 -1
- package/dist/pipe.mjs +1 -1
- package/dist/reduce.es.js +1 -1
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +1 -1
- package/dist/rubico.es.js +28 -10
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +2794 -0
- package/dist/rubico.global.min.js +8 -0
- package/dist/rubico.js +15 -6
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +28 -10
- package/dist/set.es.js +1 -1
- package/dist/set.es.min.js +1 -1
- package/dist/set.js +1 -1
- package/dist/set.min.js +1 -1
- package/dist/set.mjs +1 -1
- package/dist/some.es.js +1 -1
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +1 -1
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +1 -1
- package/dist/switchCase.es.js +1 -1
- package/dist/switchCase.es.min.js +1 -1
- package/dist/switchCase.js +1 -1
- package/dist/switchCase.min.js +1 -1
- package/dist/switchCase.mjs +1 -1
- package/dist/tap.es.js +1 -1
- package/dist/tap.es.min.js +1 -1
- package/dist/tap.js +1 -1
- package/dist/tap.min.js +1 -1
- package/dist/tap.mjs +1 -1
- package/dist/thunkify.es.js +1 -1
- package/dist/thunkify.es.min.js +1 -1
- package/dist/thunkify.js +1 -1
- package/dist/thunkify.min.js +1 -1
- package/dist/thunkify.mjs +1 -1
- package/dist/transform.es.js +1 -1
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +1 -1
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -1
- package/dist/tryCatch.es.js +1 -1
- package/dist/tryCatch.es.min.js +1 -1
- package/dist/tryCatch.js +1 -1
- package/dist/tryCatch.min.js +1 -1
- package/dist/tryCatch.mjs +1 -1
- package/dist/x/append.es.js +1 -1
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +1 -1
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +1 -1
- package/dist/x/callProp.es.js +1 -1
- package/dist/x/callProp.es.min.js +1 -1
- package/dist/x/callProp.js +1 -1
- package/dist/x/callProp.min.js +1 -1
- package/dist/x/callProp.mjs +1 -1
- package/dist/x/defaultsDeep.es.js +1 -1
- package/dist/x/defaultsDeep.es.min.js +1 -1
- package/dist/x/defaultsDeep.js +1 -1
- package/dist/x/defaultsDeep.min.js +1 -1
- package/dist/x/defaultsDeep.mjs +1 -1
- package/dist/x/differenceWith.es.js +1 -1
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +1 -1
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +1 -1
- package/dist/x/filterOut.es.js +1 -1
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +1 -1
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +1 -1
- package/dist/x/find.es.js +1 -1
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -1
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -1
- package/dist/x/findIndex.es.js +1 -1
- package/dist/x/findIndex.es.min.js +1 -1
- package/dist/x/findIndex.js +1 -1
- package/dist/x/findIndex.min.js +1 -1
- package/dist/x/findIndex.mjs +1 -1
- package/dist/x/first.es.js +1 -1
- package/dist/x/first.es.min.js +1 -1
- package/dist/x/first.js +1 -1
- package/dist/x/first.min.js +1 -1
- package/dist/x/first.mjs +1 -1
- package/dist/x/flatten.es.js +1 -1
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +1 -1
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +1 -1
- package/dist/x/groupBy.es.js +1 -1
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +1 -1
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +1 -1
- package/dist/x/has.es.js +1 -1
- package/dist/x/has.es.min.js +1 -1
- package/dist/x/has.js +1 -1
- package/dist/x/has.min.js +1 -1
- package/dist/x/has.mjs +1 -1
- package/dist/x/identity.es.js +1 -1
- package/dist/x/identity.es.min.js +1 -1
- package/dist/x/identity.js +1 -1
- package/dist/x/identity.min.js +1 -1
- package/dist/x/identity.mjs +1 -1
- package/dist/x/includes.es.js +1 -1
- package/dist/x/includes.es.min.js +1 -1
- package/dist/x/includes.js +1 -1
- package/dist/x/includes.min.js +1 -1
- package/dist/x/includes.mjs +1 -1
- package/dist/x/isDeepEqual.es.js +1 -1
- package/dist/x/isDeepEqual.es.min.js +1 -1
- package/dist/x/isDeepEqual.js +1 -1
- package/dist/x/isDeepEqual.min.js +1 -1
- package/dist/x/isDeepEqual.mjs +1 -1
- package/dist/x/isEmpty.es.js +1 -1
- package/dist/x/isEmpty.es.min.js +1 -1
- package/dist/x/isEmpty.js +1 -1
- package/dist/x/isEmpty.min.js +1 -1
- package/dist/x/isEmpty.mjs +1 -1
- package/dist/x/isEqual.es.js +1 -1
- package/dist/x/isEqual.es.min.js +1 -1
- package/dist/x/isEqual.js +1 -1
- package/dist/x/isEqual.min.js +1 -1
- package/dist/x/isEqual.mjs +1 -1
- package/dist/x/isFunction.es.js +1 -1
- package/dist/x/isFunction.es.min.js +1 -1
- package/dist/x/isFunction.js +1 -1
- package/dist/x/isFunction.min.js +1 -1
- package/dist/x/isFunction.mjs +1 -1
- package/dist/x/isIn.es.js +1 -1
- package/dist/x/isIn.es.min.js +1 -1
- package/dist/x/isIn.js +1 -1
- package/dist/x/isIn.min.js +1 -1
- package/dist/x/isIn.mjs +1 -1
- package/dist/x/isObject.es.js +1 -1
- package/dist/x/isObject.es.min.js +1 -1
- package/dist/x/isObject.js +1 -1
- package/dist/x/isObject.min.js +1 -1
- package/dist/x/isObject.mjs +1 -1
- package/dist/x/isString.es.js +1 -1
- package/dist/x/isString.es.min.js +1 -1
- package/dist/x/isString.js +1 -1
- package/dist/x/isString.min.js +1 -1
- package/dist/x/isString.mjs +1 -1
- package/dist/x/keys.es.js +1 -1
- package/dist/x/keys.es.min.js +1 -1
- package/dist/x/keys.js +1 -1
- package/dist/x/keys.min.js +1 -1
- package/dist/x/keys.mjs +1 -1
- package/dist/x/last.es.js +1 -1
- package/dist/x/last.es.min.js +1 -1
- package/dist/x/last.js +1 -1
- package/dist/x/last.min.js +1 -1
- package/dist/x/last.mjs +1 -1
- package/dist/x/maxBy.es.js +1 -1
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +1 -1
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +1 -1
- package/dist/x/noop.es.js +1 -1
- package/dist/x/noop.es.min.js +1 -1
- package/dist/x/noop.js +1 -1
- package/dist/x/noop.min.js +1 -1
- package/dist/x/noop.mjs +1 -1
- package/dist/x/pluck.es.js +1 -1
- package/dist/x/pluck.es.min.js +1 -1
- package/dist/x/pluck.js +1 -1
- package/dist/x/pluck.min.js +1 -1
- package/dist/x/pluck.mjs +1 -1
- package/dist/x/prepend.es.js +1 -1
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +1 -1
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +1 -1
- package/dist/x/size.es.js +1 -1
- package/dist/x/size.es.min.js +1 -1
- package/dist/x/size.js +1 -1
- package/dist/x/size.min.js +1 -1
- package/dist/x/size.mjs +1 -1
- package/dist/x/trace.es.js +1 -1
- package/dist/x/trace.es.min.js +1 -1
- package/dist/x/trace.js +1 -1
- package/dist/x/trace.min.js +1 -1
- package/dist/x/trace.mjs +1 -1
- package/dist/x/unionWith.es.js +1 -1
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +1 -1
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +1 -1
- package/dist/x/uniq.es.js +1 -1
- package/dist/x/uniq.es.min.js +1 -1
- package/dist/x/uniq.js +1 -1
- package/dist/x/uniq.min.js +1 -1
- package/dist/x/uniq.mjs +1 -1
- package/dist/x/unless.es.js +1 -1
- package/dist/x/unless.es.min.js +1 -1
- package/dist/x/unless.js +1 -1
- package/dist/x/unless.min.js +1 -1
- package/dist/x/unless.mjs +1 -1
- package/dist/x/values.es.js +1 -1
- package/dist/x/values.es.min.js +1 -1
- package/dist/x/values.js +1 -1
- package/dist/x/values.min.js +1 -1
- package/dist/x/values.mjs +1 -1
- package/dist/x/when.es.js +1 -1
- package/dist/x/when.es.min.js +1 -1
- package/dist/x/when.js +1 -1
- package/dist/x/when.min.js +1 -1
- package/dist/x/when.mjs +1 -1
- package/dist-test.js +26 -4
- package/es.js +15 -6
- package/index.js +15 -6
- package/package.json +1 -1
- package/rubico.js +14 -5
- package/tmp.js +1 -0
- package/dist/__.min.mjs +0 -7
- package/dist/all.min.mjs +0 -7
- package/dist/always.min.mjs +0 -7
- package/dist/and.min.mjs +0 -7
- package/dist/assign.min.mjs +0 -7
- package/dist/compose.min.mjs +0 -7
- package/dist/curry.min.mjs +0 -7
- package/dist/eq.min.mjs +0 -7
- package/dist/every.min.mjs +0 -7
- package/dist/filter.min.mjs +0 -7
- package/dist/flatMap.min.mjs +0 -7
- package/dist/forEach.min.mjs +0 -7
- package/dist/get.min.mjs +0 -7
- package/dist/gt.min.mjs +0 -7
- package/dist/gte.min.mjs +0 -7
- package/dist/lt.min.mjs +0 -7
- package/dist/lte.min.mjs +0 -7
- package/dist/map.min.mjs +0 -7
- package/dist/not.min.mjs +0 -7
- package/dist/omit.min.mjs +0 -7
- package/dist/or.min.mjs +0 -7
- package/dist/pick.min.mjs +0 -7
- package/dist/pipe.min.mjs +0 -7
- package/dist/reduce.min.mjs +0 -7
- package/dist/rubico.min.mjs +0 -7
- package/dist/set.min.mjs +0 -7
- package/dist/some.min.mjs +0 -7
- package/dist/switchCase.min.mjs +0 -7
- package/dist/tap.min.mjs +0 -7
- package/dist/thunkify.min.mjs +0 -7
- package/dist/transform.min.mjs +0 -7
- package/dist/tryCatch.min.mjs +0 -7
- package/dist/x/append.min.mjs +0 -7
- package/dist/x/callProp.min.mjs +0 -7
- package/dist/x/defaultsDeep.min.mjs +0 -7
- package/dist/x/differenceWith.min.mjs +0 -7
- package/dist/x/filterOut.min.mjs +0 -7
- package/dist/x/find.min.mjs +0 -7
- package/dist/x/findIndex.min.mjs +0 -7
- package/dist/x/first.min.mjs +0 -7
- package/dist/x/flatten.min.mjs +0 -7
- package/dist/x/groupBy.min.mjs +0 -7
- package/dist/x/has.min.mjs +0 -7
- package/dist/x/identity.min.mjs +0 -7
- package/dist/x/includes.min.mjs +0 -7
- package/dist/x/isDeepEqual.min.mjs +0 -7
- package/dist/x/isEmpty.min.mjs +0 -7
- package/dist/x/isEqual.min.mjs +0 -7
- package/dist/x/isFunction.min.mjs +0 -7
- package/dist/x/isIn.min.mjs +0 -7
- package/dist/x/isObject.min.mjs +0 -7
- package/dist/x/isString.min.mjs +0 -7
- package/dist/x/keys.min.mjs +0 -7
- package/dist/x/last.min.mjs +0 -7
- package/dist/x/maxBy.min.mjs +0 -7
- package/dist/x/noop.min.mjs +0 -7
- package/dist/x/pluck.min.mjs +0 -7
- package/dist/x/prepend.min.mjs +0 -7
- package/dist/x/size.min.mjs +0 -7
- package/dist/x/trace.min.mjs +0 -7
- package/dist/x/unionWith.min.mjs +0 -7
- package/dist/x/uniq.min.mjs +0 -7
- package/dist/x/unless.min.mjs +0 -7
- package/dist/x/values.min.mjs +0 -7
- package/dist/x/when.min.mjs +0 -7
|
@@ -0,0 +1,488 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
(function (root, Transducer) {
|
|
9
|
+
if (typeof module == 'object') (module.exports = Transducer) // CommonJS
|
|
10
|
+
else if (typeof define == 'function') define(() => Transducer) // AMD
|
|
11
|
+
else (root.Transducer = Transducer) // Browser
|
|
12
|
+
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
|
+
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
16
|
+
const funcConcat = (
|
|
17
|
+
funcA, funcB,
|
|
18
|
+
) => function pipedFunction(...args) {
|
|
19
|
+
const intermediate = funcA(...args)
|
|
20
|
+
return isPromise(intermediate)
|
|
21
|
+
? intermediate.then(funcB)
|
|
22
|
+
: funcB(intermediate)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const __ = Symbol.for('placeholder')
|
|
26
|
+
|
|
27
|
+
// argument resolver for curry2
|
|
28
|
+
const curry2ResolveArg0 = (
|
|
29
|
+
baseFunc, arg1,
|
|
30
|
+
) => function arg0Resolver(arg0) {
|
|
31
|
+
return baseFunc(arg0, arg1)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// argument resolver for curry2
|
|
35
|
+
const curry2ResolveArg1 = (
|
|
36
|
+
baseFunc, arg0,
|
|
37
|
+
) => function arg1Resolver(arg1) {
|
|
38
|
+
return baseFunc(arg0, arg1)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
42
|
+
return arg0 == __
|
|
43
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
44
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const reducerMap = (
|
|
48
|
+
reducer, mapper,
|
|
49
|
+
) => function mappingReducer(result, reducerItem) {
|
|
50
|
+
const mappingReducerItem = mapper(reducerItem)
|
|
51
|
+
return isPromise(mappingReducerItem)
|
|
52
|
+
? mappingReducerItem.then(curry2(reducer, result, __))
|
|
53
|
+
: reducer(result, mappingReducerItem)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// argument resolver for curry3
|
|
57
|
+
const curry3ResolveArg0 = (
|
|
58
|
+
baseFunc, arg1, arg2,
|
|
59
|
+
) => function arg0Resolver(arg0) {
|
|
60
|
+
return baseFunc(arg0, arg1, arg2)
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// argument resolver for curry3
|
|
64
|
+
const curry3ResolveArg1 = (
|
|
65
|
+
baseFunc, arg0, arg2,
|
|
66
|
+
) => function arg1Resolver(arg1) {
|
|
67
|
+
return baseFunc(arg0, arg1, arg2)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// argument resolver for curry3
|
|
71
|
+
const curry3ResolveArg2 = (
|
|
72
|
+
baseFunc, arg0, arg1,
|
|
73
|
+
) => function arg2Resolver(arg2) {
|
|
74
|
+
return baseFunc(arg0, arg1, arg2)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
78
|
+
if (arg0 == __) {
|
|
79
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
80
|
+
}
|
|
81
|
+
if (arg1 == __) {
|
|
82
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
83
|
+
}
|
|
84
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const thunkify2 = (func, arg0, arg1) => function thunk() {
|
|
88
|
+
return func(arg0, arg1)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
const thunkConditional = (
|
|
92
|
+
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
93
|
+
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
94
|
+
|
|
95
|
+
const always = value => function getter() { return value }
|
|
96
|
+
|
|
97
|
+
const reducerFilter = (
|
|
98
|
+
reducer, predicate,
|
|
99
|
+
) => function filteringReducer(result, item) {
|
|
100
|
+
const shouldInclude = predicate(item)
|
|
101
|
+
return isPromise(shouldInclude)
|
|
102
|
+
? shouldInclude.then(curry3(
|
|
103
|
+
thunkConditional,
|
|
104
|
+
__,
|
|
105
|
+
thunkify2(reducer, result, item),
|
|
106
|
+
always(result)))
|
|
107
|
+
: shouldInclude ? reducer(result, item) : result
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const isArray = Array.isArray
|
|
111
|
+
|
|
112
|
+
const objectValues = Object.values
|
|
113
|
+
|
|
114
|
+
const objectProto = Object.prototype
|
|
115
|
+
|
|
116
|
+
const nativeObjectToString = objectProto.toString
|
|
117
|
+
|
|
118
|
+
const objectToString = value => nativeObjectToString.call(value)
|
|
119
|
+
|
|
120
|
+
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
121
|
+
|
|
122
|
+
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
123
|
+
|
|
124
|
+
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
125
|
+
|
|
126
|
+
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
127
|
+
|
|
128
|
+
const iteratorReduceAsync = async function (
|
|
129
|
+
iterator, reducer, result,
|
|
130
|
+
) {
|
|
131
|
+
let iteration = iterator.next()
|
|
132
|
+
if (iteration.done) {
|
|
133
|
+
return result
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
while (!iteration.done) {
|
|
137
|
+
result = reducer(result, iteration.value)
|
|
138
|
+
if (isPromise(result)) {
|
|
139
|
+
result = await result
|
|
140
|
+
}
|
|
141
|
+
iteration = iterator.next()
|
|
142
|
+
}
|
|
143
|
+
return result
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const iteratorReduce = function (iterator, reducer, result) {
|
|
147
|
+
let iteration = iterator.next()
|
|
148
|
+
if (iteration.done) {
|
|
149
|
+
return result
|
|
150
|
+
}
|
|
151
|
+
if (result === undefined) {
|
|
152
|
+
result = iteration.value
|
|
153
|
+
iteration = iterator.next()
|
|
154
|
+
}
|
|
155
|
+
while (!iteration.done) {
|
|
156
|
+
result = reducer(result, iteration.value)
|
|
157
|
+
if (isPromise(result)) {
|
|
158
|
+
return result.then(curry3(iteratorReduceAsync, iterator, reducer, __))
|
|
159
|
+
}
|
|
160
|
+
iteration = iterator.next()
|
|
161
|
+
}
|
|
162
|
+
return result
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const asyncIteratorReduce = async function (asyncIterator, reducer, result) {
|
|
166
|
+
let iteration = await asyncIterator.next()
|
|
167
|
+
if (iteration.done) {
|
|
168
|
+
return result
|
|
169
|
+
}
|
|
170
|
+
if (result === undefined) {
|
|
171
|
+
result = iteration.value
|
|
172
|
+
iteration = await asyncIterator.next()
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
while (!iteration.done) {
|
|
176
|
+
result = await reducer(result, iteration.value)
|
|
177
|
+
iteration = await asyncIterator.next()
|
|
178
|
+
}
|
|
179
|
+
return result
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const symbolIterator = Symbol.iterator
|
|
183
|
+
|
|
184
|
+
const symbolAsyncIterator = Symbol.asyncIterator
|
|
185
|
+
|
|
186
|
+
// argument resolver for curryArgs3
|
|
187
|
+
const curryArgs3ResolveArgs0 = (
|
|
188
|
+
baseFunc, arg1, arg2,
|
|
189
|
+
) => function args0Resolver(...args) {
|
|
190
|
+
return baseFunc(args, arg1, arg2)
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// argument resolver for curryArgs3
|
|
194
|
+
const curryArgs3ResolveArgs1 = (
|
|
195
|
+
baseFunc, arg0, arg2,
|
|
196
|
+
) => function arg1Resolver(...args) {
|
|
197
|
+
return baseFunc(arg0, args, arg2)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
// argument resolver for curryArgs3
|
|
201
|
+
const curryArgs3ResolveArgs2 = (
|
|
202
|
+
baseFunc, arg0, arg1,
|
|
203
|
+
) => function arg2Resolver(...args) {
|
|
204
|
+
return baseFunc(arg0, arg1, args)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
208
|
+
if (arg0 == __) {
|
|
209
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
210
|
+
}
|
|
211
|
+
if (arg1 == __) {
|
|
212
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
213
|
+
}
|
|
214
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// argument resolver for curry4
|
|
218
|
+
const curry4ResolveArg0 = (
|
|
219
|
+
baseFunc, arg1, arg2, arg3,
|
|
220
|
+
) => function arg0Resolver(arg0) {
|
|
221
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// argument resolver for curry4
|
|
225
|
+
const curry4ResolveArg1 = (
|
|
226
|
+
baseFunc, arg0, arg2, arg3,
|
|
227
|
+
) => function arg1Resolver(arg1) {
|
|
228
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// argument resolver for curry4
|
|
232
|
+
const curry4ResolveArg2 = (
|
|
233
|
+
baseFunc, arg0, arg1, arg3,
|
|
234
|
+
) => function arg2Resolver(arg2) {
|
|
235
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
// argument resolver for curry4
|
|
239
|
+
const curry4ResolveArg3 = (
|
|
240
|
+
baseFunc, arg0, arg1, arg2,
|
|
241
|
+
) => function arg3Resolver(arg3) {
|
|
242
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
246
|
+
if (arg0 == __) {
|
|
247
|
+
return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
|
|
248
|
+
}
|
|
249
|
+
if (arg1 == __) {
|
|
250
|
+
return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
|
|
251
|
+
}
|
|
252
|
+
if (arg2 == __) {
|
|
253
|
+
return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
|
|
254
|
+
}
|
|
255
|
+
return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
const arrayReduceAsync = async function (
|
|
259
|
+
array, reducer, result, index,
|
|
260
|
+
) {
|
|
261
|
+
const length = array.length
|
|
262
|
+
while (++index < length) {
|
|
263
|
+
result = reducer(result, array[index], index, array)
|
|
264
|
+
if (isPromise(result)) {
|
|
265
|
+
result = await result
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return result
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const arrayReduce = function (array, reducer, result) {
|
|
272
|
+
const arrayLength = array.length
|
|
273
|
+
let index = -1
|
|
274
|
+
if (result === undefined) {
|
|
275
|
+
result = array[++index]
|
|
276
|
+
}
|
|
277
|
+
while (++index < arrayLength) {
|
|
278
|
+
result = reducer(result, array[index], index, array)
|
|
279
|
+
if (isPromise(result)) {
|
|
280
|
+
return result.then(curry4(arrayReduceAsync, array, reducer, __, index))
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return result
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// argument resolver for curry5
|
|
287
|
+
const curry5ResolveArg0 = (
|
|
288
|
+
baseFunc, arg1, arg2, arg3, arg4,
|
|
289
|
+
) => function arg0Resolver(arg0) {
|
|
290
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// argument resolver for curry5
|
|
294
|
+
const curry5ResolveArg1 = (
|
|
295
|
+
baseFunc, arg0, arg2, arg3, arg4,
|
|
296
|
+
) => function arg1Resolver(arg1) {
|
|
297
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// argument resolver for curry5
|
|
301
|
+
const curry5ResolveArg2 = (
|
|
302
|
+
baseFunc, arg0, arg1, arg3, arg4,
|
|
303
|
+
) => function arg2Resolver(arg2) {
|
|
304
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// argument resolver for curry5
|
|
308
|
+
const curry5ResolveArg3 = (
|
|
309
|
+
baseFunc, arg0, arg1, arg2, arg4,
|
|
310
|
+
) => function arg3Resolver(arg3) {
|
|
311
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// argument resolver for curry5
|
|
315
|
+
const curry5ResolveArg4 = (
|
|
316
|
+
baseFunc, arg0, arg1, arg2, arg3,
|
|
317
|
+
) => function arg3Resolver(arg4) {
|
|
318
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
322
|
+
if (arg0 == __) {
|
|
323
|
+
return curry5ResolveArg0(baseFunc, arg1, arg2, arg3, arg4)
|
|
324
|
+
}
|
|
325
|
+
if (arg1 == __) {
|
|
326
|
+
return curry5ResolveArg1(baseFunc, arg0, arg2, arg3, arg4)
|
|
327
|
+
}
|
|
328
|
+
if (arg2 == __) {
|
|
329
|
+
return curry5ResolveArg2(baseFunc, arg0, arg1, arg3, arg4)
|
|
330
|
+
}
|
|
331
|
+
if (arg3 == __) {
|
|
332
|
+
return curry5ResolveArg3(baseFunc, arg0, arg1, arg2, arg4)
|
|
333
|
+
}
|
|
334
|
+
return curry5ResolveArg4(baseFunc, arg0, arg1, arg2, arg3)
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const objectKeys = Object.keys
|
|
338
|
+
|
|
339
|
+
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
340
|
+
const keysLength = keys.length
|
|
341
|
+
while (++index < keysLength) {
|
|
342
|
+
const key = keys[index]
|
|
343
|
+
result = reducer(result, object[key], key, object)
|
|
344
|
+
if (isPromise(result)) {
|
|
345
|
+
result = await result
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
return result
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
const objectReduce = function (object, reducer, result) {
|
|
352
|
+
const keys = objectKeys(object),
|
|
353
|
+
keysLength = keys.length
|
|
354
|
+
let index = -1
|
|
355
|
+
if (result === undefined) {
|
|
356
|
+
result = object[keys[++index]]
|
|
357
|
+
}
|
|
358
|
+
while (++index < keysLength) {
|
|
359
|
+
const key = keys[index]
|
|
360
|
+
result = reducer(result, object[key], key, object)
|
|
361
|
+
if (isPromise(result)) {
|
|
362
|
+
return result.then(curry5(objectReduceAsync, object, reducer, __, keys, index))
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
return result
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
const mapReduceAsync = async function (
|
|
369
|
+
map, reducer, result, mapEntriesIter,
|
|
370
|
+
) {
|
|
371
|
+
for (const [key, value] of mapEntriesIter) {
|
|
372
|
+
result = reducer(result, value, key, map)
|
|
373
|
+
if (isPromise(result)) {
|
|
374
|
+
result = await result
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
return result
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
const mapReduce = function (map, reducer, result) {
|
|
381
|
+
const mapEntriesIter = map.entries()
|
|
382
|
+
if (result === undefined) {
|
|
383
|
+
const firstIteration = mapEntriesIter.next()
|
|
384
|
+
if (firstIteration.done) {
|
|
385
|
+
return result
|
|
386
|
+
}
|
|
387
|
+
result = firstIteration.value[1]
|
|
388
|
+
}
|
|
389
|
+
for (const [key, value] of mapEntriesIter) {
|
|
390
|
+
result = reducer(result, value, key, map)
|
|
391
|
+
if (isPromise(result)) {
|
|
392
|
+
return result.then(curry4(
|
|
393
|
+
mapReduceAsync, map, reducer, __, mapEntriesIter))
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
return result
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
const reducerConcat = (
|
|
400
|
+
reducerA, reducerB,
|
|
401
|
+
) => function pipedReducer(result, item) {
|
|
402
|
+
const intermediate = reducerA(result, item)
|
|
403
|
+
return isPromise(intermediate)
|
|
404
|
+
? intermediate.then(curry2(reducerB, __, item))
|
|
405
|
+
: reducerB(intermediate, item)
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
const genericReduce = function (collection, reducer, result) {
|
|
409
|
+
if (isArray(collection)) {
|
|
410
|
+
return arrayReduce(collection, reducer, result)
|
|
411
|
+
}
|
|
412
|
+
if (collection == null) {
|
|
413
|
+
return result === undefined
|
|
414
|
+
? curry2(reducer, collection, __)
|
|
415
|
+
: reducer(result, collection)
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (collection.constructor == Map) {
|
|
419
|
+
return mapReduce(collection, reducer, result)
|
|
420
|
+
}
|
|
421
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
422
|
+
return iteratorReduce(
|
|
423
|
+
collection[symbolIterator](), reducer, result)
|
|
424
|
+
}
|
|
425
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
426
|
+
return asyncIteratorReduce(
|
|
427
|
+
collection[symbolAsyncIterator](), reducer, result)
|
|
428
|
+
}
|
|
429
|
+
if (typeof collection.reduce == 'function') {
|
|
430
|
+
return collection.reduce(reducer, result)
|
|
431
|
+
}
|
|
432
|
+
if (typeof collection.chain == 'function') {
|
|
433
|
+
return collection.chain(curry2(reducer, result, __))
|
|
434
|
+
}
|
|
435
|
+
if (typeof collection.flatMap == 'function') {
|
|
436
|
+
return collection.flatMap(curry2(reducer, result, __))
|
|
437
|
+
}
|
|
438
|
+
if (collection.constructor == Object) {
|
|
439
|
+
return objectReduce(collection, reducer, result)
|
|
440
|
+
}
|
|
441
|
+
return result === undefined
|
|
442
|
+
? curry2(reducer, collection, __)
|
|
443
|
+
: reducer(result, collection)
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
const reducerFlatMap = (
|
|
447
|
+
reducer, flatMapper,
|
|
448
|
+
) => function flatMappingReducer(result, value) {
|
|
449
|
+
const monad = flatMapper(value)
|
|
450
|
+
return isPromise(monad)
|
|
451
|
+
? monad.then(curry3(genericReduce, __, reducer, result))
|
|
452
|
+
: genericReduce(monad, reducer, result)
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
const reducerForEach = (
|
|
456
|
+
reducer, callback,
|
|
457
|
+
) => function executingForEach(result, item) {
|
|
458
|
+
const operation = callback(item)
|
|
459
|
+
if (isPromise(operation)) {
|
|
460
|
+
return operation.then(thunkify2(reducer, result, item))
|
|
461
|
+
}
|
|
462
|
+
return reducer(result, item)
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
const Transducer = {}
|
|
466
|
+
|
|
467
|
+
Transducer.map = function transducerMap(mapper) {
|
|
468
|
+
return curry2(reducerMap, __, mapper)
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
Transducer.filter = function transducerFilter(predicate) {
|
|
472
|
+
return curry2(reducerFilter, __, predicate)
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
Transducer.flatMap = function transducerFlatMap(flatMapper) {
|
|
476
|
+
return curry2(reducerFlatMap, __, flatMapper)
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
Transducer.forEach = function transducerForEach(func) {
|
|
480
|
+
return curry2(reducerForEach, __, func)
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
Transducer.passthrough = function transducerPassthrough(reducer) {
|
|
484
|
+
return reducer
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
return Transducer
|
|
488
|
+
}())))
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.Transducer=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),r=function(n,r,e){return r==t?((n,t)=>function(r){return n(r,t)})(n,e):((n,t)=>function(r){return n(t,r)})(n,r)},e=(e,o)=>function(u,c){const f=o(c);return n(f)?f.then(r(e,u,t)):e(u,f)},o=function(n,r,e,o){return r==t?((n,t,r)=>function(e){return n(e,t,r)})(n,e,o):e==t?((n,t,r)=>function(e){return n(t,e,r)})(n,r,o):((n,t,r)=>function(e){return n(t,r,e)})(n,r,e)},u=(n,t,r)=>function(){return n(t,r)},c=(n,t,r)=>n?t():r(),f=(r,e)=>function(f,i){const a=e(i);return n(a)?a.then(o(c,t,u(r,f,i),(s=f,function(){return s}))):a?r(f,i):f;var s},i=Array.isArray,a=(Object.values,Object.prototype.toString,async function(t,r,e){let o=t.next();if(o.done)return e;for(;!o.done;)e=r(e,o.value),n(e)&&(e=await e),o=t.next();return e}),s=Symbol.iterator,l=Symbol.asyncIterator,d=function(n,r,e,o,u){return r==t?((n,t,r,e)=>function(o){return n(o,t,r,e)})(n,e,o,u):e==t?((n,t,r,e)=>function(o){return n(t,o,r,e)})(n,r,o,u):o==t?((n,t,r,e)=>function(o){return n(t,r,o,e)})(n,r,e,u):((n,t,r,e)=>function(o){return n(t,r,e,o)})(n,r,e,o)},h=async function(t,r,e,o){const u=t.length;for(;++o<u;)e=r(e,t[o],o,t),n(e)&&(e=await e);return e},y=Object.keys,p=async function(t,r,e,o,u){const c=o.length;for(;++u<c;){const c=o[u];e=r(e,t[c],c,t),n(e)&&(e=await e)}return e},v=async function(t,r,e,o){for(const[u,c]of o)e=r(e,c,u,t),n(e)&&(e=await e);return e},b=function(e,u,c){return i(e)?function(r,e,o){const u=r.length;let c=-1;for(void 0===o&&(o=r[++c]);++c<u;)if(o=e(o,r[c],c,r),n(o))return o.then(d(h,r,e,t,c));return o}(e,u,c):null==e?void 0===c?r(u,e,t):u(c,e):e.constructor==Map?function(r,e,o){const u=r.entries();if(void 0===o){const n=u.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of u)if(o=e(o,f,c,r),n(o))return o.then(d(v,r,e,t,u));return o}(e,u,c):"function"==typeof e[s]?function(r,e,u){let c=r.next();if(c.done)return u;for(void 0===u&&(u=c.value,c=r.next());!c.done;){if(u=e(u,c.value),n(u))return u.then(o(a,r,e,t));c=r.next()}return u}(e[s](),u,c):"function"==typeof e[l]?async function(n,t,r){let e=await n.next();if(e.done)return r;for(void 0===r&&(r=e.value,e=await n.next());!e.done;)r=await t(r,e.value),e=await n.next();return r}(e[l](),u,c):"function"==typeof e.reduce?e.reduce(u,c):"function"==typeof e.chain?e.chain(r(u,c,t)):"function"==typeof e.flatMap?e.flatMap(r(u,c,t)):e.constructor==Object?function(r,e,o){const u=y(r),c=u.length;let f=-1;for(void 0===o&&(o=r[u[++f]]);++f<c;){const c=u[f];if(o=e(o,r[c],c,r),n(o))return o.then((i=p,s=e,l=t,d=u,h=f,(a=r)==t?((n,t,r,e,o)=>function(u){return n(u,t,r,e,o)})(i,s,l,d,h):s==t?((n,t,r,e,o)=>function(u){return n(t,u,r,e,o)})(i,a,l,d,h):l==t?((n,t,r,e,o)=>function(u){return n(t,r,u,e,o)})(i,a,s,d,h):d==t?((n,t,r,e,o)=>function(u){return n(t,r,e,u,o)})(i,a,s,l,h):((n,t,r,e,o)=>function(u){return n(t,r,e,o,u)})(i,a,s,l,d)))}var i,a,s,l,d,h;return o}(e,u,c):void 0===c?r(u,e,t):u(c,e)},x=(r,e)=>function(u,c){const f=e(c);return n(f)?f.then(o(b,t,r,u)):b(f,r,u)},g=(t,r)=>function(e,o){const c=r(o);return n(c)?c.then(u(t,e,o)):t(e,o)},w={map:function(n){return r(e,t,n)},filter:function(n){return r(f,t,n)},flatMap:function(n){return r(x,t,n)},forEach:function(n){return r(g,t,n)},passthrough:function(n){return n}};return w}());
|