rubico 2.12.1 → 2.13.0
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/Transducer.js +57 -21
- package/_internal/functionArrayAllSeries.js +4 -3
- package/_internal/functionObjectAllSeries.js +65 -0
- package/_internal/genericTransform.js +0 -1
- package/all.js +36 -16
- package/and.js +3 -3
- package/assign.js +3 -3
- package/compose.js +6 -6
- package/dist/Transducer.es.js +1 -1
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +1 -1
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +1 -1
- 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 +112 -8
- package/dist/all.es.min.js +2 -2
- package/dist/all.js +112 -8
- package/dist/all.min.js +2 -2
- package/dist/all.mjs +112 -8
- 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 +112 -61
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +112 -61
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +112 -61
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +112 -61
- 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 -3
- package/dist/transform.es.min.js +2 -2
- package/dist/transform.js +1 -3
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -3
- 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/eq.js +7 -7
- package/es.js +112 -61
- package/every.js +2 -2
- package/filter.js +3 -3
- package/flatMap.js +3 -3
- package/forEach.js +6 -6
- package/gt.js +7 -7
- package/gte.js +7 -7
- package/index.js +112 -61
- package/lt.js +7 -7
- package/lte.js +7 -7
- package/map.js +11 -11
- package/not.js +3 -3
- package/or.js +3 -3
- package/package.json +1 -1
- package/pipe.js +6 -6
- package/reduce.js +8 -8
- package/some.js +2 -2
- package/switchCase.js +6 -6
- package/tap.js +7 -12
- package/transform.js +7 -7
- package/tryCatch.js +4 -7
- package/_internal/add.js +0 -12
package/Transducer.js
CHANGED
|
@@ -11,8 +11,44 @@ const __ = require('./_internal/placeholder')
|
|
|
11
11
|
/**
|
|
12
12
|
* @name Transducer
|
|
13
13
|
*
|
|
14
|
+
* @synopsis
|
|
15
|
+
* ```coffeescript [specscript]
|
|
16
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
17
|
+
*
|
|
18
|
+
* type Transducer = Reducer=>Reducer
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
14
21
|
* @description
|
|
15
|
-
*
|
|
22
|
+
* A transducer is a function that takes a `Reducer` and returns another `Reducer`. Transducers enable function chains with reducers - pass a reducer to a transducer to create a reducer with chained functionality. A `Reducer` is a function that defines a relationship between an accumulator and an item in a transformation, and can be used in a reducing operation, such as with Rubico's [reduce](/docs/reduce) or vanilla JavaScript [Array.prototype.reduce](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce).
|
|
23
|
+
*
|
|
24
|
+
* ```javascript [playground]
|
|
25
|
+
* const isOdd = number => number % 2 == 1
|
|
26
|
+
*
|
|
27
|
+
* const asyncSquare = async number => number ** 2
|
|
28
|
+
*
|
|
29
|
+
* const numbers = [1, 2, 3, 4, 5]
|
|
30
|
+
*
|
|
31
|
+
* const transducer = compose(
|
|
32
|
+
* Transducer.filter(isOdd),
|
|
33
|
+
* Transducer.map(asyncSquare)
|
|
34
|
+
* )
|
|
35
|
+
*
|
|
36
|
+
* const transformed = await transform(numbers, transducer, [])
|
|
37
|
+
*
|
|
38
|
+
* console.log(transformed)
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* The following are the core building blocks for creating transducers with Rubico, and are offered through this [Transducer](/docs/Transducer) module.
|
|
42
|
+
*
|
|
43
|
+
* * [Transducer.map](/docs/Transducer.map)
|
|
44
|
+
* * [Transducer.filter](/docs/Transducer.filter)
|
|
45
|
+
* * [Transducer.flatMap](/docs/Transducer.flatMap)
|
|
46
|
+
* * [Transducer.forEach](/docs/Transducer.forEach)
|
|
47
|
+
* * [Transducer.passthrough](/docs/Transducer.passthrough)
|
|
48
|
+
* * [Transducer.tryCatch](/docs/Transducer.tryCatch)
|
|
49
|
+
*
|
|
50
|
+
* See also:
|
|
51
|
+
* * [Transducers Crash Course](/blog/transducers-crash-course)
|
|
16
52
|
*/
|
|
17
53
|
const Transducer = {}
|
|
18
54
|
|
|
@@ -21,11 +57,11 @@ const Transducer = {}
|
|
|
21
57
|
*
|
|
22
58
|
* @synopsis
|
|
23
59
|
* ```coffeescript [specscript]
|
|
24
|
-
* type
|
|
25
|
-
* type Transducer =
|
|
26
|
-
* type
|
|
60
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
61
|
+
* type Transducer = Reducer=>Reducer
|
|
62
|
+
* type Mapper = (item any)=>(mappedItem Promise|any)
|
|
27
63
|
*
|
|
28
|
-
* Transducer.map(mapper
|
|
64
|
+
* Transducer.map(mapper Mapper) -> mappingTransducer Transducer
|
|
29
65
|
* ```
|
|
30
66
|
*
|
|
31
67
|
* @description
|
|
@@ -73,11 +109,11 @@ Transducer.map = function transducerMap(mapper) {
|
|
|
73
109
|
*
|
|
74
110
|
* @synopsis
|
|
75
111
|
* ```coffeescript [specscript]
|
|
76
|
-
* type
|
|
77
|
-
* type Transducer =
|
|
78
|
-
* type
|
|
112
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
113
|
+
* type Transducer = Reducer=>Reducer
|
|
114
|
+
* type Predicate = any=>Promise|boolean|any
|
|
79
115
|
*
|
|
80
|
-
* Transducer.filter(predicate
|
|
116
|
+
* Transducer.filter(predicate Predicate) -> filteringTransducer Transducer
|
|
81
117
|
* ```
|
|
82
118
|
*
|
|
83
119
|
* @description
|
|
@@ -117,12 +153,12 @@ Transducer.filter = function transducerFilter(predicate) {
|
|
|
117
153
|
*
|
|
118
154
|
* @synopsis
|
|
119
155
|
* ```coffeescript [specscript]
|
|
120
|
-
* type
|
|
121
|
-
* type Transducer =
|
|
156
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
157
|
+
* type Transducer = Reducer=>Reducer
|
|
122
158
|
* type Monad = Array|String|Set|Generator|AsyncGenerator|{ flatMap: string }|{ chain: string }|Object
|
|
123
|
-
* type
|
|
159
|
+
* type FlatMapper = (item any)=>(monad Promise|Monad|any)
|
|
124
160
|
*
|
|
125
|
-
* Transducer.flatMap(flatMapper
|
|
161
|
+
* Transducer.flatMap(flatMapper FlatMapper) -> flatMappingTransducer Transducer
|
|
126
162
|
* ```
|
|
127
163
|
*
|
|
128
164
|
* @description
|
|
@@ -156,11 +192,11 @@ Transducer.flatMap = function transducerFlatMap(flatMapper) {
|
|
|
156
192
|
*
|
|
157
193
|
* @synopsis
|
|
158
194
|
* ```coffeescript [specscript]
|
|
159
|
-
* type
|
|
160
|
-
* type Transducer =
|
|
161
|
-
* type
|
|
195
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
196
|
+
* type Transducer = Reducer=>Reducer
|
|
197
|
+
* type Callback = (item any)=>Promise|undefined
|
|
162
198
|
*
|
|
163
|
-
* Transducer.forEach(callback
|
|
199
|
+
* Transducer.forEach(callback Callback) -> forEachTransducer Transducer
|
|
164
200
|
* ```
|
|
165
201
|
*
|
|
166
202
|
* @description
|
|
@@ -193,8 +229,8 @@ Transducer.forEach = function transducerForEach(func) {
|
|
|
193
229
|
*
|
|
194
230
|
* @synopsis
|
|
195
231
|
* ```coffeescript [specscript]
|
|
196
|
-
* type
|
|
197
|
-
* type Transducer =
|
|
232
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
233
|
+
* type Transducer = Reducer=>Reducer
|
|
198
234
|
*
|
|
199
235
|
* Transducer.passthrough -> Transducer
|
|
200
236
|
* ```
|
|
@@ -234,8 +270,8 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
|
|
|
234
270
|
*
|
|
235
271
|
* @synopsis
|
|
236
272
|
* ```coffeescript [specscript]
|
|
237
|
-
* type
|
|
238
|
-
* type Transducer =
|
|
273
|
+
* type Reducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
274
|
+
* type Transducer = Reducer=>Reducer
|
|
239
275
|
*
|
|
240
276
|
* Transducer.tryCatch(
|
|
241
277
|
* transducerTryer Transducer,
|
|
@@ -11,7 +11,7 @@ const objectSet = require('./objectSet')
|
|
|
11
11
|
* @synopsis
|
|
12
12
|
* ```coffeescript [specscript]
|
|
13
13
|
* asyncFunctionArrayAllSeries(
|
|
14
|
-
* funcs Array<function>,
|
|
14
|
+
* funcs Array<function|any>,
|
|
15
15
|
* args Array,
|
|
16
16
|
* result Array,
|
|
17
17
|
* funcsIndex number
|
|
@@ -34,14 +34,15 @@ const asyncFunctionArrayAllSeries = async function (funcs, args, result, funcsIn
|
|
|
34
34
|
*
|
|
35
35
|
* @synopsis
|
|
36
36
|
* ```coffeescript [specscript]
|
|
37
|
-
* functionArrayAllSeries(funcs Array<function>, args Array) -> Promise|Array
|
|
37
|
+
* functionArrayAllSeries(funcs Array<function|any>, args Array) -> Promise|Array
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
const functionArrayAllSeries = function (funcs, args) {
|
|
41
41
|
const funcsLength = funcs.length, result = []
|
|
42
42
|
let funcsIndex = -1
|
|
43
43
|
while (++funcsIndex < funcsLength) {
|
|
44
|
-
const
|
|
44
|
+
const f = funcs[funcsIndex]
|
|
45
|
+
const resultElement = typeof f == 'function' ? f(...args) : f
|
|
45
46
|
if (isPromise(resultElement)) {
|
|
46
47
|
return resultElement.then(funcConcat(
|
|
47
48
|
curry3(objectSet, result, funcsIndex, __),
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const funcConcat = require('./funcConcat')
|
|
2
|
+
const isPromise = require('./isPromise')
|
|
3
|
+
const __ = require('./placeholder')
|
|
4
|
+
const curry3 = require('./curry3')
|
|
5
|
+
const curry5 = require('./curry5')
|
|
6
|
+
const objectSet = require('./objectSet')
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @name asyncFunctionObjectAllSeries
|
|
10
|
+
*
|
|
11
|
+
* @synopsis
|
|
12
|
+
* ```coffeescript [specscript]
|
|
13
|
+
* asyncFunctionObjectAllSeries(
|
|
14
|
+
* funcs Array<function>,
|
|
15
|
+
* args Array,
|
|
16
|
+
* result Array,
|
|
17
|
+
* keys Array<string>,
|
|
18
|
+
* keysIndex number
|
|
19
|
+
* ) -> Promise|Array
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @TODO benchmark vs regular promise handling
|
|
23
|
+
*/
|
|
24
|
+
const asyncFunctionObjectAllSeries = async function (funcs, args, result, keys, keysIndex) {
|
|
25
|
+
const keysLength = keys.length
|
|
26
|
+
while (++keysIndex < keysLength) {
|
|
27
|
+
const key = keys[keysIndex]
|
|
28
|
+
const f = funcs[key]
|
|
29
|
+
let resultElement = typeof f == 'function' ? f(...args) : f
|
|
30
|
+
if (isPromise(resultElement)) {
|
|
31
|
+
resultElement = await resultElement
|
|
32
|
+
}
|
|
33
|
+
result[key] = resultElement
|
|
34
|
+
}
|
|
35
|
+
return result
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @name functionObjectAllSeries
|
|
40
|
+
*
|
|
41
|
+
* @synopsis
|
|
42
|
+
* ```coffeescript [specscript]
|
|
43
|
+
* functionObjectAllSeries(funcs Object<function|any>, args Array) -> Promise|Array
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const functionObjectAllSeries = function (funcs, args) {
|
|
47
|
+
const result = {}
|
|
48
|
+
const keys = Object.keys(funcs)
|
|
49
|
+
const keysLength = keys.length
|
|
50
|
+
let keysIndex = -1
|
|
51
|
+
while (++keysIndex < keysLength) {
|
|
52
|
+
const key = keys[keysIndex]
|
|
53
|
+
const f = funcs[key]
|
|
54
|
+
const resultElement = typeof f == 'function' ? f(...args) : f
|
|
55
|
+
if (isPromise(resultElement)) {
|
|
56
|
+
return resultElement.then(funcConcat(
|
|
57
|
+
curry3(objectSet, result, key, __),
|
|
58
|
+
curry5(asyncFunctionObjectAllSeries, funcs, args, __, keys, keysIndex)))
|
|
59
|
+
}
|
|
60
|
+
result[key] = resultElement
|
|
61
|
+
}
|
|
62
|
+
return result
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
module.exports = functionObjectAllSeries
|
|
@@ -7,7 +7,6 @@ const curry2 = require('./curry2')
|
|
|
7
7
|
const curry3 = require('./curry3')
|
|
8
8
|
const always = require('./always')
|
|
9
9
|
const noop = require('./noop')
|
|
10
|
-
const add = require('./add')
|
|
11
10
|
const genericReduce = require('./genericReduce')
|
|
12
11
|
const objectAssign = require('./objectAssign')
|
|
13
12
|
const arrayExtend = require('./arrayExtend')
|
package/all.js
CHANGED
|
@@ -9,6 +9,7 @@ const curry2 = require('./_internal/curry2')
|
|
|
9
9
|
const curryArgs2 = require('./_internal/curryArgs2')
|
|
10
10
|
const functionArrayAll = require('./_internal/functionArrayAll')
|
|
11
11
|
const functionArrayAllSeries = require('./_internal/functionArrayAllSeries')
|
|
12
|
+
const functionObjectAllSeries = require('./_internal/functionObjectAllSeries')
|
|
12
13
|
const functionObjectAll = require('./_internal/functionObjectAll')
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -36,16 +37,16 @@ const _allValues = function (values) {
|
|
|
36
37
|
*
|
|
37
38
|
* @synopsis
|
|
38
39
|
* ```coffeescript [specscript]
|
|
39
|
-
* type
|
|
40
|
-
* type ResolverOrValue =
|
|
40
|
+
* type Resolver = (...arguments)=>Promise|any
|
|
41
|
+
* type ResolverOrValue = Resolver|Promise|any
|
|
41
42
|
*
|
|
42
|
-
* all(Promise|Array<Promise|any>) -> Promise|Array
|
|
43
|
-
* all(...arguments, Array<ResolverOrValue>) -> Promise|Array
|
|
44
|
-
* all(Array<ResolverOrValue>)(...arguments) -> Promise|Array
|
|
43
|
+
* all(values Promise|Array<Promise|any>) -> result Promise|Array
|
|
44
|
+
* all(...arguments, valuesOrFuncs Array<ResolverOrValue>) -> result Promise|Array
|
|
45
|
+
* all(valuesOrFuncs Array<ResolverOrValue>)(...arguments) -> result Promise|Array
|
|
45
46
|
*
|
|
46
|
-
* all(Promise|Object<Promise|any>) -> Promise|Object
|
|
47
|
-
* all(...arguments, Object<ResolverOrValue>) -> Promise|Object
|
|
48
|
-
* all(Object<ResolverOrValue>)(...arguments) -> Promise|Object
|
|
47
|
+
* all(values Promise|Object<Promise|any>) -> result Promise|Object
|
|
48
|
+
* all(...arguments, valuesOrFuncs Object<ResolverOrValue>) -> result Promise|Object
|
|
49
|
+
* all(valuesOrFuncs Object<ResolverOrValue>)(...arguments) -> result Promise|Object
|
|
49
50
|
* ```
|
|
50
51
|
*
|
|
51
52
|
* @description
|
|
@@ -162,9 +163,9 @@ const all = function (...args) {
|
|
|
162
163
|
*
|
|
163
164
|
* @synopsis
|
|
164
165
|
* ```coffeescript [specscript]
|
|
165
|
-
* all.series(...arguments, Array<function>) -> Promise|Array
|
|
166
|
+
* all.series(...arguments, funcs Array<function>) -> result Promise|Array
|
|
166
167
|
*
|
|
167
|
-
* all.series(Array<function>)(...arguments) -> Promise|Array
|
|
168
|
+
* all.series(funcs Array<function>)(...arguments) -> result Promise|Array
|
|
168
169
|
* ```
|
|
169
170
|
*
|
|
170
171
|
* @description
|
|
@@ -186,14 +187,33 @@ const all = function (...args) {
|
|
|
186
187
|
*/
|
|
187
188
|
|
|
188
189
|
all.series = function allSeries(...args) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
if (args.length == 1) {
|
|
191
|
+
const resolversOrValues = args[0]
|
|
192
|
+
if (isPromise(resolversOrValues)) {
|
|
193
|
+
return resolversOrValues.then(_allValues)
|
|
194
|
+
}
|
|
195
|
+
if (areAllValuesNonfunctions(resolversOrValues)) {
|
|
196
|
+
return _allValues(resolversOrValues)
|
|
197
|
+
}
|
|
198
|
+
return isArray(resolversOrValues)
|
|
199
|
+
? curryArgs2(functionArrayAllSeries, resolversOrValues, __)
|
|
200
|
+
: curryArgs2(functionObjectAllSeries, resolversOrValues, __)
|
|
192
201
|
}
|
|
193
|
-
|
|
194
|
-
|
|
202
|
+
|
|
203
|
+
const resolversOrValues = args[args.length - 1]
|
|
204
|
+
const argValues = args.slice(0, -1)
|
|
205
|
+
|
|
206
|
+
if (areAnyValuesPromises(argValues)) {
|
|
207
|
+
return isArray(resolversOrValues)
|
|
208
|
+
? promiseAll(argValues)
|
|
209
|
+
.then(curry2(functionArrayAllSeries, resolversOrValues, __))
|
|
210
|
+
: promiseAll(argValues)
|
|
211
|
+
.then(curry2(functionObjectAllSeries, resolversOrValues, __))
|
|
195
212
|
}
|
|
196
|
-
|
|
213
|
+
|
|
214
|
+
return isArray(resolversOrValues)
|
|
215
|
+
? functionArrayAllSeries(resolversOrValues, argValues)
|
|
216
|
+
: functionObjectAllSeries(resolversOrValues, argValues)
|
|
197
217
|
}
|
|
198
218
|
|
|
199
219
|
module.exports = all
|
package/and.js
CHANGED
|
@@ -97,11 +97,11 @@ const areAllPredicatesTruthy = function (args, predicates) {
|
|
|
97
97
|
*
|
|
98
98
|
* @synopsis
|
|
99
99
|
* ```coffeescript [specscript]
|
|
100
|
-
* type
|
|
100
|
+
* type Predicate = (...arguments)=>Promise|boolean|any
|
|
101
101
|
*
|
|
102
102
|
* and(values Array<boolean|any>) -> testResult boolean
|
|
103
|
-
* and(...arguments, predicatesOrValues Array<
|
|
104
|
-
* and(predicatesOrValues Array<
|
|
103
|
+
* and(...arguments, predicatesOrValues Array<Predicate|boolean|any>) -> testResult Promise|boolean
|
|
104
|
+
* and(predicatesOrValues Array<Predicate|boolean|any>)(...arguments) -> testResult Promise|boolean
|
|
105
105
|
* ```
|
|
106
106
|
*
|
|
107
107
|
* @description
|
package/assign.js
CHANGED
|
@@ -18,10 +18,10 @@ const _assign = function (object, funcs) {
|
|
|
18
18
|
*
|
|
19
19
|
* @synopsis
|
|
20
20
|
* ```coffeescript [specscript]
|
|
21
|
-
* type
|
|
21
|
+
* type Resolver = any=>Promise|any
|
|
22
22
|
*
|
|
23
|
-
* assign(Promise|Object, Object<
|
|
24
|
-
* assign(Object<
|
|
23
|
+
* assign(Promise|Object, Object<Resolver|Promise|any>) -> Promise|Object
|
|
24
|
+
* assign(Object<Resolver|Promise|any>)(Object) -> Promise|Object
|
|
25
25
|
* ```
|
|
26
26
|
*
|
|
27
27
|
* @description
|
package/compose.js
CHANGED
|
@@ -10,14 +10,14 @@ const funcConcat = require('./_internal/funcConcat')
|
|
|
10
10
|
*
|
|
11
11
|
* @synopsis
|
|
12
12
|
* ```coffeescript [specscript]
|
|
13
|
-
* type
|
|
14
|
-
* type
|
|
13
|
+
* type Function = (...arguments)=>Promise|any
|
|
14
|
+
* type UnaryFunction = any=>Promise|any
|
|
15
15
|
*
|
|
16
|
-
* funcs [
|
|
16
|
+
* funcs [Function, ...Array<UnaryFunction>]
|
|
17
17
|
*
|
|
18
|
-
* compose(funcs)(...arguments) -> Promise|any
|
|
19
|
-
* compose(...arguments, funcs) -> Promise|any
|
|
20
|
-
* compose(...funcs)(...arguments) -> Promise|any
|
|
18
|
+
* compose(funcs)(...arguments) -> result Promise|any
|
|
19
|
+
* compose(...arguments, funcs) -> result Promise|any
|
|
20
|
+
* compose(...funcs)(...arguments) -> result Promise|any
|
|
21
21
|
* ```
|
|
22
22
|
*
|
|
23
23
|
* @description
|
package/dist/Transducer.es.js
CHANGED
package/dist/Transducer.js
CHANGED
package/dist/Transducer.min.js
CHANGED
package/dist/Transducer.mjs
CHANGED
package/dist/__.es.js
CHANGED
package/dist/__.es.min.js
CHANGED
package/dist/__.js
CHANGED
package/dist/__.min.js
CHANGED
package/dist/__.mjs
CHANGED
package/dist/all.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
@@ -236,7 +236,8 @@ const functionArrayAllSeries = function (funcs, args) {
|
|
|
236
236
|
const funcsLength = funcs.length, result = []
|
|
237
237
|
let funcsIndex = -1
|
|
238
238
|
while (++funcsIndex < funcsLength) {
|
|
239
|
-
const
|
|
239
|
+
const f = funcs[funcsIndex]
|
|
240
|
+
const resultElement = typeof f == 'function' ? f(...args) : f
|
|
240
241
|
if (isPromise(resultElement)) {
|
|
241
242
|
return resultElement.then(funcConcat(
|
|
242
243
|
curry3(objectSet, result, funcsIndex, __),
|
|
@@ -247,6 +248,90 @@ const functionArrayAllSeries = function (funcs, args) {
|
|
|
247
248
|
return result
|
|
248
249
|
}
|
|
249
250
|
|
|
251
|
+
// argument resolver for curry5
|
|
252
|
+
const curry5ResolveArg0 = (
|
|
253
|
+
baseFunc, arg1, arg2, arg3, arg4,
|
|
254
|
+
) => function arg0Resolver(arg0) {
|
|
255
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// argument resolver for curry5
|
|
259
|
+
const curry5ResolveArg1 = (
|
|
260
|
+
baseFunc, arg0, arg2, arg3, arg4,
|
|
261
|
+
) => function arg1Resolver(arg1) {
|
|
262
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// argument resolver for curry5
|
|
266
|
+
const curry5ResolveArg2 = (
|
|
267
|
+
baseFunc, arg0, arg1, arg3, arg4,
|
|
268
|
+
) => function arg2Resolver(arg2) {
|
|
269
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
// argument resolver for curry5
|
|
273
|
+
const curry5ResolveArg3 = (
|
|
274
|
+
baseFunc, arg0, arg1, arg2, arg4,
|
|
275
|
+
) => function arg3Resolver(arg3) {
|
|
276
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// argument resolver for curry5
|
|
280
|
+
const curry5ResolveArg4 = (
|
|
281
|
+
baseFunc, arg0, arg1, arg2, arg3,
|
|
282
|
+
) => function arg3Resolver(arg4) {
|
|
283
|
+
return baseFunc(arg0, arg1, arg2, arg3, arg4)
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
287
|
+
if (arg0 == __) {
|
|
288
|
+
return curry5ResolveArg0(baseFunc, arg1, arg2, arg3, arg4)
|
|
289
|
+
}
|
|
290
|
+
if (arg1 == __) {
|
|
291
|
+
return curry5ResolveArg1(baseFunc, arg0, arg2, arg3, arg4)
|
|
292
|
+
}
|
|
293
|
+
if (arg2 == __) {
|
|
294
|
+
return curry5ResolveArg2(baseFunc, arg0, arg1, arg3, arg4)
|
|
295
|
+
}
|
|
296
|
+
if (arg3 == __) {
|
|
297
|
+
return curry5ResolveArg3(baseFunc, arg0, arg1, arg2, arg4)
|
|
298
|
+
}
|
|
299
|
+
return curry5ResolveArg4(baseFunc, arg0, arg1, arg2, arg3)
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const asyncFunctionObjectAllSeries = async function (funcs, args, result, keys, keysIndex) {
|
|
303
|
+
const keysLength = keys.length
|
|
304
|
+
while (++keysIndex < keysLength) {
|
|
305
|
+
const key = keys[keysIndex]
|
|
306
|
+
const f = funcs[key]
|
|
307
|
+
let resultElement = typeof f == 'function' ? f(...args) : f
|
|
308
|
+
if (isPromise(resultElement)) {
|
|
309
|
+
resultElement = await resultElement
|
|
310
|
+
}
|
|
311
|
+
result[key] = resultElement
|
|
312
|
+
}
|
|
313
|
+
return result
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const functionObjectAllSeries = function (funcs, args) {
|
|
317
|
+
const result = {}
|
|
318
|
+
const keys = Object.keys(funcs)
|
|
319
|
+
const keysLength = keys.length
|
|
320
|
+
let keysIndex = -1
|
|
321
|
+
while (++keysIndex < keysLength) {
|
|
322
|
+
const key = keys[keysIndex]
|
|
323
|
+
const f = funcs[key]
|
|
324
|
+
const resultElement = typeof f == 'function' ? f(...args) : f
|
|
325
|
+
if (isPromise(resultElement)) {
|
|
326
|
+
return resultElement.then(funcConcat(
|
|
327
|
+
curry3(objectSet, result, key, __),
|
|
328
|
+
curry5(asyncFunctionObjectAllSeries, funcs, args, __, keys, keysIndex)))
|
|
329
|
+
}
|
|
330
|
+
result[key] = resultElement
|
|
331
|
+
}
|
|
332
|
+
return result
|
|
333
|
+
}
|
|
334
|
+
|
|
250
335
|
const always = value => function getter() { return value }
|
|
251
336
|
|
|
252
337
|
const functionObjectAll = function (funcs, args) {
|
|
@@ -305,14 +390,33 @@ const all = function (...args) {
|
|
|
305
390
|
}
|
|
306
391
|
|
|
307
392
|
all.series = function allSeries(...args) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
393
|
+
if (args.length == 1) {
|
|
394
|
+
const resolversOrValues = args[0]
|
|
395
|
+
if (isPromise(resolversOrValues)) {
|
|
396
|
+
return resolversOrValues.then(_allValues)
|
|
397
|
+
}
|
|
398
|
+
if (areAllValuesNonfunctions(resolversOrValues)) {
|
|
399
|
+
return _allValues(resolversOrValues)
|
|
400
|
+
}
|
|
401
|
+
return isArray(resolversOrValues)
|
|
402
|
+
? curryArgs2(functionArrayAllSeries, resolversOrValues, __)
|
|
403
|
+
: curryArgs2(functionObjectAllSeries, resolversOrValues, __)
|
|
311
404
|
}
|
|
312
|
-
|
|
313
|
-
|
|
405
|
+
|
|
406
|
+
const resolversOrValues = args[args.length - 1]
|
|
407
|
+
const argValues = args.slice(0, -1)
|
|
408
|
+
|
|
409
|
+
if (areAnyValuesPromises(argValues)) {
|
|
410
|
+
return isArray(resolversOrValues)
|
|
411
|
+
? promiseAll(argValues)
|
|
412
|
+
.then(curry2(functionArrayAllSeries, resolversOrValues, __))
|
|
413
|
+
: promiseAll(argValues)
|
|
414
|
+
.then(curry2(functionObjectAllSeries, resolversOrValues, __))
|
|
314
415
|
}
|
|
315
|
-
|
|
416
|
+
|
|
417
|
+
return isArray(resolversOrValues)
|
|
418
|
+
? functionArrayAllSeries(resolversOrValues, argValues)
|
|
419
|
+
: functionObjectAllSeries(resolversOrValues, argValues)
|
|
316
420
|
}
|
|
317
421
|
|
|
318
422
|
export default all
|
package/dist/all.es.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
6
6
|
* Rubico may be freely distributed under the CFOSS license.
|
|
7
7
|
*/
|
|
8
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,areAnyValuesPromises=function(r){if(isArray(r)){const
|
|
8
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,areAnyValuesPromises=function(r){if(isArray(r)){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1}for(const e in r){const n=r[e];if(isPromise(n))return!0}return!1},areAllValuesNonfunctions=function(r){if(isArray(r)){const e=r.length;let n=-1;for(;++n<e;)if("function"==typeof r[n])return!1;return!0}for(const e in r)if("function"==typeof r[e])return!1;return!0},promiseAll=Promise.all.bind(Promise),promiseObjectAllExecutor=r=>function(e){const n={};let t=0;for(const o in r){const u=r[o];isPromise(u)?(t+=1,u.then((r=>function(o){n[r]=o,t-=1,0==t&&e(n)})(o))):n[o]=u}0==t&&e(n)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curryArgs2ResolveArgs0=(r,e,n)=>function(...n){return r(n,e)},curryArgs2ResolveArgs1=(r,e,n)=>function(...n){return r(e,n)},curryArgs2=function(r,e,n){return e==__?curryArgs2ResolveArgs0(r,n):curryArgs2ResolveArgs1(r,e)},functionArrayAll=function(r,e){const n=r.length,t=Array(n);let o=-1,u=!1;for(;++o<n;){const n=r[o],c="function"==typeof n?n(...e):n;isPromise(c)&&(u=!0),t[o]=c}return u?promiseAll(t):t},funcConcat=(r,e)=>function(...n){const t=r(...n);return isPromise(t)?t.then(e):e(t)},curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},objectSet=function(r,e,n){return r[e]=n,r},asyncFunctionArrayAllSeries=async function(r,e,n,t){const o=r.length;for(;++t<o;){const o=r[t](...e);n[t]=isPromise(o)?await o:o}return n},functionArrayAllSeries=function(r,e){const n=r.length,t=[];let o=-1;for(;++o<n;){const n=r[o],u="function"==typeof n?n(...e):n;if(isPromise(u))return u.then(funcConcat(curry3(objectSet,t,o,__),curry4(asyncFunctionArrayAllSeries,r,e,__,o)));t[o]=u}return t},curry5ResolveArg0=(r,e,n,t,o)=>function(u){return r(u,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(u){return r(e,u,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(u){return r(e,n,u,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(u){return r(e,n,t,u,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(u){return r(e,n,t,o,u)},curry5=function(r,e,n,t,o,u){return e==__?curry5ResolveArg0(r,n,t,o,u):n==__?curry5ResolveArg1(r,e,t,o,u):t==__?curry5ResolveArg2(r,e,n,o,u):o==__?curry5ResolveArg3(r,e,n,t,u):curry5ResolveArg4(r,e,n,t,o)},asyncFunctionObjectAllSeries=async function(r,e,n,t,o){const u=t.length;for(;++o<u;){const u=t[o],c=r[u];let s="function"==typeof c?c(...e):c;isPromise(s)&&(s=await s),n[u]=s}return n},functionObjectAllSeries=function(r,e){const n={},t=Object.keys(r),o=t.length;let u=-1;for(;++u<o;){const o=t[u],c=r[o],s="function"==typeof c?c(...e):c;if(isPromise(s))return s.then(funcConcat(curry3(objectSet,n,o,__),curry5(asyncFunctionObjectAllSeries,r,e,__,t,u)));n[o]=s}return n},always=r=>function(){return r},functionObjectAll=function(r,e){const n={},t=[];for(const o in r){const u=r[o],c="function"==typeof u?u(...e):u;isPromise(c)?t.push(c.then(curry3(objectSet,n,o,__))):n[o]=c}return 0==t.length?n:promiseAll(t).then(always(n))},_allValues=function(r){return isArray(r)?areAnyValuesPromises(r)?promiseAll(r):r:areAnyValuesPromises(r)?promiseObjectAll(r):r},all=function(...r){if(1==r.length){const e=r[0];return isPromise(e)?e.then(_allValues):areAllValuesNonfunctions(e)?_allValues(e):isArray(e)?curryArgs2(functionArrayAll,e,__):curryArgs2(functionObjectAll,e,__)}const e=r[r.length-1],n=r.slice(0,-1);return areAnyValuesPromises(n)?isArray(e)?promiseAll(n).then(curry2(functionArrayAll,e,__)):promiseAll(n).then(curry2(functionObjectAll,e,__)):isArray(e)?functionArrayAll(e,n):functionObjectAll(e,n)};all.series=function(...r){if(1==r.length){const e=r[0];return isPromise(e)?e.then(_allValues):areAllValuesNonfunctions(e)?_allValues(e):isArray(e)?curryArgs2(functionArrayAllSeries,e,__):curryArgs2(functionObjectAllSeries,e,__)}const e=r[r.length-1],n=r.slice(0,-1);return areAnyValuesPromises(n)?isArray(e)?promiseAll(n).then(curry2(functionArrayAllSeries,e,__)):promiseAll(n).then(curry2(functionObjectAllSeries,e,__)):isArray(e)?functionArrayAllSeries(e,n):functionObjectAllSeries(e,n)};export default all;
|