rubico 2.11.0 → 2.12.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 +16 -20
- package/Transducer.js +37 -58
- package/__.js +3 -3
- package/always.js +4 -4
- package/and.js +34 -26
- package/assign.js +2 -2
- package/compose.js +1 -0
- package/curry.js +48 -28
- 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 +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 +113 -19
- package/dist/filter.es.min.js +2 -2
- package/dist/filter.js +113 -19
- package/dist/filter.min.js +2 -2
- package/dist/filter.mjs +113 -19
- 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 +57 -19
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +57 -19
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +57 -19
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +57 -19
- 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 +113 -19
- package/dist/x/filterOut.es.min.js +2 -2
- package/dist/x/filterOut.js +113 -19
- package/dist/x/filterOut.min.js +2 -2
- package/dist/x/filterOut.mjs +113 -19
- 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 +29 -30
- package/es.js +57 -19
- package/every.js +14 -20
- package/filter.js +38 -75
- package/flatMap.js +13 -13
- package/forEach.js +8 -8
- package/get.js +3 -3
- package/gt.js +18 -25
- package/gte.js +22 -29
- package/index.js +57 -19
- package/lt.js +33 -31
- package/lte.js +24 -31
- package/map.js +32 -35
- package/not.js +12 -17
- package/or.js +34 -26
- package/package.json +1 -1
- package/reduce.js +60 -67
- package/some.js +11 -34
- package/switchCase.js +3 -3
- package/thunkify.js +42 -12
- package/transform.js +57 -56
package/transform.js
CHANGED
|
@@ -25,20 +25,52 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
25
25
|
* type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
26
26
|
* type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
|
|
27
27
|
*
|
|
28
|
-
* type Semigroup =
|
|
29
|
-
* Array|String|Set|TypedArray|{ concat: function }|{ write: function }|Object
|
|
28
|
+
* type Semigroup = Array|String|Set|TypedArray|{ concat: function }|{ write: function }|Object
|
|
30
29
|
*
|
|
31
30
|
* type UnarySyncOrAsyncSemigroupResolver = any=>Promise|Semigroup
|
|
32
31
|
*
|
|
33
|
-
* transducer
|
|
34
|
-
*
|
|
32
|
+
* transform(foldable Promise|Foldable, transducer, initialValue Promise|any) -> result Promise|Semigroup
|
|
33
|
+
* transform(foldable Promise|Foldable, transducer, initialResolver UnarySyncOrAsyncSemigroupResolver) -> result Promise|Semigroup
|
|
35
34
|
*
|
|
36
|
-
* transform(
|
|
37
|
-
* transform(transducer,
|
|
35
|
+
* transform(transducer, initialValue Promise|any)(foldable Foldable) -> result Promise|Semigroup
|
|
36
|
+
* transform(transducer, initialResolver UnarySyncOrAsyncSemigroupResolver)(foldable Foldable) -> result Promise|Semigroup
|
|
38
37
|
* ```
|
|
39
38
|
*
|
|
40
39
|
* @description
|
|
41
|
-
* Transforms a foldable with [
|
|
40
|
+
* Transforms a foldable into a semigroup with a [transducer](https://rubico.land/blog/transducers-crash-course-rubico-v2).
|
|
41
|
+
*
|
|
42
|
+
* ```javascript [playground]
|
|
43
|
+
* const square = number => number ** 2
|
|
44
|
+
*
|
|
45
|
+
* const isOdd = number => number % 2 == 1
|
|
46
|
+
*
|
|
47
|
+
* const squaredOdds = compose([
|
|
48
|
+
* Transducer.filter(isOdd),
|
|
49
|
+
* Transducer.map(square),
|
|
50
|
+
* ])
|
|
51
|
+
*
|
|
52
|
+
* const array = [1, 2, 3, 4, 5]
|
|
53
|
+
*
|
|
54
|
+
* // transform arrays into arrays
|
|
55
|
+
* const squaredOddsArray = transform(array, squaredOdds, [])
|
|
56
|
+
* console.log('array into array')
|
|
57
|
+
* console.log(squaredOddsArray)
|
|
58
|
+
*
|
|
59
|
+
* // transform arrays into strings
|
|
60
|
+
* const squaredOddsString = transform(array, squaredOdds, '')
|
|
61
|
+
* console.log('array into string')
|
|
62
|
+
* console.log(squaredOddsString)
|
|
63
|
+
*
|
|
64
|
+
* // transform arrays into sets
|
|
65
|
+
* const squaredOddsSet = transform(array, squaredOdds, new Set())
|
|
66
|
+
* console.log('array into set')
|
|
67
|
+
* console.log(squaredOddsSet)
|
|
68
|
+
*
|
|
69
|
+
* // transform arrays into typed arrays
|
|
70
|
+
* const squaredOddsUint8Array = transform(array, squaredOdds, new Uint8Array())
|
|
71
|
+
* console.log('array into binary')
|
|
72
|
+
* console.log(squaredOddsUint8Array)
|
|
73
|
+
* ```
|
|
42
74
|
*
|
|
43
75
|
* The following data types are considered to be foldables:
|
|
44
76
|
* * `array`
|
|
@@ -49,7 +81,7 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
49
81
|
* * `object with .reduce method`
|
|
50
82
|
* * `object`
|
|
51
83
|
*
|
|
52
|
-
*
|
|
84
|
+
* The transducer defines the transformation done by `transform`. In a transformation, each item of the foldable is processed by the transducer in series.
|
|
53
85
|
*
|
|
54
86
|
* ```coffeescript [specscript]
|
|
55
87
|
* type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
|
|
@@ -106,40 +138,7 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
106
138
|
* nextAccumulator = ({ ...accumulator, ...values })
|
|
107
139
|
* ```
|
|
108
140
|
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* ```javascript [playground]
|
|
112
|
-
* const square = number => number ** 2
|
|
113
|
-
*
|
|
114
|
-
* const isOdd = number => number % 2 == 1
|
|
115
|
-
*
|
|
116
|
-
* const squaredOdds = compose([
|
|
117
|
-
* Transducer.filter(isOdd),
|
|
118
|
-
* Transducer.map(square),
|
|
119
|
-
* ])
|
|
120
|
-
*
|
|
121
|
-
* // transform arrays into arrays
|
|
122
|
-
* console.log(
|
|
123
|
-
* transform([1, 2, 3, 4, 5], squaredOdds, [])
|
|
124
|
-
* ) // [1, 9, 25]
|
|
125
|
-
*
|
|
126
|
-
* // transform arrays into strings
|
|
127
|
-
* console.log(
|
|
128
|
-
* transform([1, 2, 3, 4, 5], squaredOdds, '')
|
|
129
|
-
* ) // '1925'
|
|
130
|
-
*
|
|
131
|
-
* // transform arrays into sets
|
|
132
|
-
* console.log(
|
|
133
|
-
* transform([1, 2, 3, 4, 5], squaredOdds, new Set())
|
|
134
|
-
* ) // Set (3) { 1, 9, 25 }
|
|
135
|
-
*
|
|
136
|
-
* // transform arrays into typed arrays
|
|
137
|
-
* console.log(
|
|
138
|
-
* transform([1, 2, 3, 4, 5], squaredOdds, new Uint8Array()),
|
|
139
|
-
* ) // Uint8Array(3) [ 1, 9, 25 ]
|
|
140
|
-
* ```
|
|
141
|
-
*
|
|
142
|
-
* `transform` transforms arrays into objects that implement `.concat`.
|
|
141
|
+
* Any object that implements concat may be used as the semigroup for `transform`.
|
|
143
142
|
*
|
|
144
143
|
* ```javascript [playground]
|
|
145
144
|
* const square = number => number ** 2
|
|
@@ -152,14 +151,9 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
152
151
|
* }
|
|
153
152
|
*
|
|
154
153
|
* transform([1, 2, 3, 4, 5], Transducer.map(square), Stdout)
|
|
155
|
-
* // 1
|
|
156
|
-
* // 4
|
|
157
|
-
* // 9
|
|
158
|
-
* // 16
|
|
159
|
-
* // 25
|
|
160
154
|
* ```
|
|
161
155
|
*
|
|
162
|
-
*
|
|
156
|
+
* Node.js `process.stdout`, a writable stream (implements the `write` method), may be used as the semigroup for `transform`
|
|
163
157
|
*
|
|
164
158
|
* ```javascript
|
|
165
159
|
* const { pipe, compose, transform } = rubico
|
|
@@ -189,28 +183,35 @@ const _transform = function (collection, transducer, initialValue) {
|
|
|
189
183
|
* )
|
|
190
184
|
* ```
|
|
191
185
|
*
|
|
192
|
-
* If the initial value is a function it is treated as a resolver of the semigroup. The resolver may be asynchronous.
|
|
186
|
+
* If the initial value is a function, it is treated as a resolver of the semigroup. The resolver may be asynchronous.
|
|
193
187
|
*
|
|
194
188
|
* ```javascript [playground]
|
|
195
|
-
* const
|
|
189
|
+
* const result = await transform(
|
|
196
190
|
* [1, 2, 3, 4, 5],
|
|
197
191
|
* Transducer.map(number => number ** 2),
|
|
198
|
-
* async () => [
|
|
192
|
+
* async () => []
|
|
199
193
|
* )
|
|
200
194
|
*
|
|
201
|
-
*
|
|
195
|
+
* console.log(result)
|
|
202
196
|
* ```
|
|
203
197
|
*
|
|
204
|
-
*
|
|
198
|
+
* If the foldable or initial value is a promise, it is resolved for its value before further execution for the eager interface only.
|
|
205
199
|
*
|
|
206
200
|
* ```javascript [playground]
|
|
207
|
-
* const
|
|
201
|
+
* const resultFromPromiseFoldable = await transform(
|
|
208
202
|
* Promise.resolve([1, 2, 3, 4, 5]),
|
|
209
203
|
* Transducer.map(n => n ** 2),
|
|
210
|
-
* []
|
|
204
|
+
* []
|
|
211
205
|
* )
|
|
212
206
|
*
|
|
213
|
-
*
|
|
207
|
+
* const resultFromPromiseSemigroup = await transform(
|
|
208
|
+
* [1, 2, 3, 4, 5],
|
|
209
|
+
* Transducer.map(n => n ** 2),
|
|
210
|
+
* Promise.resolve([])
|
|
211
|
+
* )
|
|
212
|
+
*
|
|
213
|
+
* console.log(resultFromPromiseFoldable)
|
|
214
|
+
* console.log(resultFromPromiseSemigroup)
|
|
214
215
|
* ```
|
|
215
216
|
*
|
|
216
217
|
* See also:
|