rubico 1.9.7 → 2.0.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/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/{distributor.js → build} +50 -50
- package/compose.js +46 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.min.mjs +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.min.mjs +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.min.mjs +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.min.mjs +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.min.mjs +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.min.mjs +7 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.min.mjs +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.min.mjs +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.min.mjs +7 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.min.mjs +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.min.mjs +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/forEach.min.mjs +7 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.min.mjs +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.min.mjs +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.min.mjs +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.min.mjs +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.min.mjs +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.min.mjs +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.min.mjs +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.min.mjs +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.min.mjs +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.min.mjs +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.min.mjs +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.min.mjs +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +730 -869
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.js +730 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.min.mjs +3 -3
- package/dist/rubico.mjs +730 -869
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.min.mjs +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/some.min.mjs +7 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.min.mjs +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.min.mjs +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.min.mjs +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.min.mjs +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.min.mjs +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.min.mjs +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.min.mjs +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.min.mjs +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.min.mjs +3 -3
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.min.mjs +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.min.mjs +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.min.mjs +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.min.mjs +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.min.mjs +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.min.mjs +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.min.mjs +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.min.mjs +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.min.mjs +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.min.mjs +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.min.mjs +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.min.mjs +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.min.mjs +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.min.mjs +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.min.mjs +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.min.mjs +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.min.mjs +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.min.mjs +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.min.mjs +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.min.mjs +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.min.mjs +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.min.mjs +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.min.mjs +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.min.mjs +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.min.mjs +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.min.mjs +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.min.mjs +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.min.mjs +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.min.mjs +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +9 -2042
- package/eq.js +21 -63
- package/es.js +730 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +730 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +10 -8
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/thunkify.es.js
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
10
|
+
const areAnyValuesPromises = function (values) {
|
|
11
|
+
const length = values.length
|
|
12
|
+
let index = -1
|
|
13
|
+
while (++index < length) {
|
|
14
|
+
const value = values[index]
|
|
15
|
+
if (isPromise(value)) {
|
|
16
|
+
return true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
23
|
+
|
|
24
|
+
const __ = Symbol.for('placeholder')
|
|
25
|
+
|
|
26
|
+
// argument resolver for curry2
|
|
27
|
+
const curry2ResolveArg0 = (
|
|
28
|
+
baseFunc, arg1,
|
|
29
|
+
) => function arg0Resolver(arg0) {
|
|
30
|
+
return baseFunc(arg0, arg1)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// argument resolver for curry2
|
|
34
|
+
const curry2ResolveArg1 = (
|
|
35
|
+
baseFunc, arg0,
|
|
36
|
+
) => function arg1Resolver(arg1) {
|
|
37
|
+
return baseFunc(arg0, arg1)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
41
|
+
return arg0 == __
|
|
42
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
43
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const funcApply = (func, args) => func(...args)
|
|
47
|
+
|
|
8
48
|
const thunkify = (func, ...args) => function thunk() {
|
|
49
|
+
if (areAnyValuesPromises(args)) {
|
|
50
|
+
return promiseAll(args).then(curry2(funcApply, func, __))
|
|
51
|
+
}
|
|
9
52
|
return func(...args)
|
|
10
53
|
}
|
|
11
54
|
|
package/dist/thunkify.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const thunkify=(
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},promiseAll=Promise.all.bind(Promise),__=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)},funcApply=(r,e)=>r(...e),thunkify=(r,...e)=>function(){return areAnyValuesPromises(e)?promiseAll(e).then((n=funcApply,u=__,(o=r)==__?curry2ResolveArg0(n,u):curry2ResolveArg1(n,o))):r(...e);var n,o,u};export default thunkify;
|
package/dist/thunkify.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -11,7 +11,50 @@
|
|
|
11
11
|
else (root.thunkify = thunkify) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
16
|
+
const areAnyValuesPromises = function (values) {
|
|
17
|
+
const length = values.length
|
|
18
|
+
let index = -1
|
|
19
|
+
while (++index < length) {
|
|
20
|
+
const value = values[index]
|
|
21
|
+
if (isPromise(value)) {
|
|
22
|
+
return true
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return false
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
29
|
+
|
|
30
|
+
const __ = Symbol.for('placeholder')
|
|
31
|
+
|
|
32
|
+
// argument resolver for curry2
|
|
33
|
+
const curry2ResolveArg0 = (
|
|
34
|
+
baseFunc, arg1,
|
|
35
|
+
) => function arg0Resolver(arg0) {
|
|
36
|
+
return baseFunc(arg0, arg1)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// argument resolver for curry2
|
|
40
|
+
const curry2ResolveArg1 = (
|
|
41
|
+
baseFunc, arg0,
|
|
42
|
+
) => function arg1Resolver(arg1) {
|
|
43
|
+
return baseFunc(arg0, arg1)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
47
|
+
return arg0 == __
|
|
48
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
49
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const funcApply = (func, args) => func(...args)
|
|
53
|
+
|
|
14
54
|
const thunkify = (func, ...args) => function thunk() {
|
|
55
|
+
if (areAnyValuesPromises(args)) {
|
|
56
|
+
return promiseAll(args).then(curry2(funcApply, func, __))
|
|
57
|
+
}
|
|
15
58
|
return func(...args)
|
|
16
59
|
}
|
|
17
60
|
|
package/dist/thunkify.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(t
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.thunkify=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Promise.all.bind(Promise),e=Symbol.for("placeholder"),o=(n,t)=>n(...t);return(r,...i)=>function(){return function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1}(i)?t(i).then((u=o,c=e,(f=r)==e?((n,t)=>function(e){return n(e,t)})(u,c):((n,t)=>function(e){return n(t,e)})(u,f))):r(...i);var u,f,c}}());
|
package/dist/thunkify.min.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const thunkify=(
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},promiseAll=Promise.all.bind(Promise),__=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)},funcApply=(r,e)=>r(...e),thunkify=(r,...e)=>function(){return areAnyValuesPromises(e)?promiseAll(e).then((n=funcApply,u=__,(o=r)==__?curry2ResolveArg0(n,u):curry2ResolveArg1(n,o))):r(...e);var n,o,u};export default thunkify;
|
package/dist/thunkify.mjs
CHANGED
|
@@ -1,11 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
10
|
+
const areAnyValuesPromises = function (values) {
|
|
11
|
+
const length = values.length
|
|
12
|
+
let index = -1
|
|
13
|
+
while (++index < length) {
|
|
14
|
+
const value = values[index]
|
|
15
|
+
if (isPromise(value)) {
|
|
16
|
+
return true
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return false
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
23
|
+
|
|
24
|
+
const __ = Symbol.for('placeholder')
|
|
25
|
+
|
|
26
|
+
// argument resolver for curry2
|
|
27
|
+
const curry2ResolveArg0 = (
|
|
28
|
+
baseFunc, arg1,
|
|
29
|
+
) => function arg0Resolver(arg0) {
|
|
30
|
+
return baseFunc(arg0, arg1)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// argument resolver for curry2
|
|
34
|
+
const curry2ResolveArg1 = (
|
|
35
|
+
baseFunc, arg0,
|
|
36
|
+
) => function arg1Resolver(arg1) {
|
|
37
|
+
return baseFunc(arg0, arg1)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
41
|
+
return arg0 == __
|
|
42
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
43
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const funcApply = (func, args) => func(...args)
|
|
47
|
+
|
|
8
48
|
const thunkify = (func, ...args) => function thunk() {
|
|
49
|
+
if (areAnyValuesPromises(args)) {
|
|
50
|
+
return promiseAll(args).then(curry2(funcApply, func, __))
|
|
51
|
+
}
|
|
9
52
|
return func(...args)
|
|
10
53
|
}
|
|
11
54
|
|
package/dist/transform.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -299,13 +299,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
299
299
|
|
|
300
300
|
const objectKeys = Object.keys
|
|
301
301
|
|
|
302
|
-
const objectGetFirstKey = function (object) {
|
|
303
|
-
for (const key in object) {
|
|
304
|
-
return key
|
|
305
|
-
}
|
|
306
|
-
return undefined
|
|
307
|
-
}
|
|
308
|
-
|
|
309
302
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
310
303
|
const keysLength = keys.length
|
|
311
304
|
while (++index < keysLength) {
|
|
@@ -366,24 +359,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
366
359
|
return result
|
|
367
360
|
}
|
|
368
361
|
|
|
369
|
-
const funcConcatSync = (
|
|
370
|
-
funcA, funcB,
|
|
371
|
-
) => function pipedFunction(...args) {
|
|
372
|
-
return funcB(funcA(...args))
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
const generatorFunctionReduce = (
|
|
376
|
-
generatorFunction, reducer, result,
|
|
377
|
-
) => funcConcatSync(
|
|
378
|
-
generatorFunction,
|
|
379
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
380
|
-
|
|
381
|
-
const asyncGeneratorFunctionReduce = (
|
|
382
|
-
asyncGeneratorFunction, reducer, result,
|
|
383
|
-
) => funcConcatSync(
|
|
384
|
-
asyncGeneratorFunction,
|
|
385
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
386
|
-
|
|
387
362
|
const reducerConcat = (
|
|
388
363
|
reducerA, reducerB,
|
|
389
364
|
) => function pipedReducer(result, item) {
|
|
@@ -393,26 +368,10 @@ const reducerConcat = (
|
|
|
393
368
|
: reducerB(intermediate, item)
|
|
394
369
|
}
|
|
395
370
|
|
|
396
|
-
const genericReduce = function (
|
|
397
|
-
const collection = args[0]
|
|
371
|
+
const genericReduce = function (collection, reducer, result) {
|
|
398
372
|
if (isArray(collection)) {
|
|
399
373
|
return arrayReduce(collection, reducer, result)
|
|
400
374
|
}
|
|
401
|
-
if (typeof collection == 'function') {
|
|
402
|
-
if (isGeneratorFunction(collection)) {
|
|
403
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
404
|
-
}
|
|
405
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
406
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
407
|
-
}
|
|
408
|
-
return curryArgs3(
|
|
409
|
-
genericReduce,
|
|
410
|
-
__,
|
|
411
|
-
args.length == 1
|
|
412
|
-
? reducerConcat(reducer, collection)
|
|
413
|
-
: args.reduce(reducerConcat, reducer),
|
|
414
|
-
result)
|
|
415
|
-
}
|
|
416
375
|
if (collection == null) {
|
|
417
376
|
return result === undefined
|
|
418
377
|
? curry2(reducer, collection, __)
|
|
@@ -449,10 +408,6 @@ const genericReduce = function (args, reducer, result) {
|
|
|
449
408
|
|
|
450
409
|
const objectAssign = Object.assign
|
|
451
410
|
|
|
452
|
-
const isArrayLike = function (value) {
|
|
453
|
-
return value != null && value.length > 0
|
|
454
|
-
}
|
|
455
|
-
|
|
456
411
|
const _arrayExtend = function (array, values) {
|
|
457
412
|
const arrayLength = array.length,
|
|
458
413
|
valuesLength = values.length
|
|
@@ -464,7 +419,7 @@ const _arrayExtend = function (array, values) {
|
|
|
464
419
|
}
|
|
465
420
|
|
|
466
421
|
const arrayExtend = function (array, values) {
|
|
467
|
-
if (
|
|
422
|
+
if (isArray(values) || isBinary(values)) {
|
|
468
423
|
return _arrayExtend(array, values)
|
|
469
424
|
}
|
|
470
425
|
array.push(values)
|
|
@@ -539,57 +494,66 @@ const callConcat = function (object, values) {
|
|
|
539
494
|
return object.concat(values)
|
|
540
495
|
}
|
|
541
496
|
|
|
542
|
-
const identityTransform = function (
|
|
543
|
-
const nil = genericReduce(
|
|
497
|
+
const identityTransform = function (collection, transducer, result) {
|
|
498
|
+
const nil = genericReduce(collection, transducer(noop), null)
|
|
544
499
|
return isPromise(nil) ? nil.then(always(result)) : result
|
|
545
500
|
}
|
|
546
501
|
|
|
547
|
-
const genericTransform = function (
|
|
502
|
+
const genericTransform = function (collection, transducer, result) {
|
|
548
503
|
if (isArray(result)) {
|
|
549
|
-
return genericReduce(
|
|
504
|
+
return genericReduce(collection, transducer(arrayExtend), result)
|
|
550
505
|
}
|
|
551
506
|
if (isBinary(result)) {
|
|
552
|
-
const intermediateArray = genericReduce(
|
|
507
|
+
const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
|
|
553
508
|
return isPromise(intermediateArray)
|
|
554
509
|
? intermediateArray.then(curry2(binaryExtend, result, __))
|
|
555
510
|
: binaryExtend(result, intermediateArray)
|
|
556
511
|
}
|
|
557
512
|
if (result == null) {
|
|
558
|
-
return identityTransform(
|
|
513
|
+
return identityTransform(collection, transducer, result)
|
|
559
514
|
}
|
|
560
515
|
|
|
561
516
|
const resultConstructor = result.constructor
|
|
562
517
|
if (typeof result == 'string' || resultConstructor == String) {
|
|
563
518
|
// TODO: use array + join over adding
|
|
564
|
-
return genericReduce(
|
|
519
|
+
return genericReduce(collection, transducer(add), result)
|
|
565
520
|
}
|
|
566
521
|
if (typeof result.concat == 'function') {
|
|
567
|
-
return genericReduce(
|
|
522
|
+
return genericReduce(collection, transducer(callConcat), result)
|
|
568
523
|
}
|
|
569
524
|
if (typeof result.write == 'function') {
|
|
570
|
-
return genericReduce(
|
|
525
|
+
return genericReduce(collection, transducer(streamExtend), result)
|
|
571
526
|
}
|
|
572
527
|
if (resultConstructor == Set) {
|
|
573
|
-
return genericReduce(
|
|
528
|
+
return genericReduce(collection, transducer(setExtend), result)
|
|
574
529
|
}
|
|
575
530
|
if (resultConstructor == Object) {
|
|
576
|
-
return genericReduce(
|
|
531
|
+
return genericReduce(collection, transducer(objectAssign), result)
|
|
577
532
|
}
|
|
578
|
-
return identityTransform(
|
|
533
|
+
return identityTransform(collection, transducer, result)
|
|
579
534
|
}
|
|
580
535
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
536
|
+
// _transform(collection any, transducer function, initialValue function|any) -> Promise
|
|
537
|
+
const _transform = function (collection, transducer, initialValue) {
|
|
538
|
+
if (typeof initialValue == 'function') {
|
|
539
|
+
const actualInitialValue = initialValue(collection)
|
|
540
|
+
return isPromise(actualInitialValue)
|
|
541
|
+
? actualInitialValue.then(curry3(genericTransform, collection, transducer, __))
|
|
542
|
+
: genericTransform(collection, transducer, actualInitialValue)
|
|
543
|
+
}
|
|
544
|
+
return isPromise(initialValue)
|
|
545
|
+
? initialValue.then(curry3(genericTransform, collection, transducer, __))
|
|
546
|
+
: genericTransform(collection, transducer, initialValue)
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
const transform = function (...args) {
|
|
550
|
+
if (typeof args[0] == 'function') {
|
|
551
|
+
return curry3(_transform, __, args[0], args[1])
|
|
589
552
|
}
|
|
590
|
-
|
|
591
|
-
return
|
|
553
|
+
if (isPromise(args[0])) {
|
|
554
|
+
return args[0].then(curry3(_transform, __, args[1], args[2]))
|
|
592
555
|
}
|
|
556
|
+
return _transform(args[0], args[1], args[2])
|
|
593
557
|
}
|
|
594
558
|
|
|
595
559
|
export default transform
|
package/dist/transform.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),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)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),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)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(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)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),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)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),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)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(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)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,s=e,a=__,f=t,y=c,(i=r)==__?curry5ResolveArg0(u,s,a,f,y):s==__?curry5ResolveArg1(u,i,a,f,y):a==__?curry5ResolveArg2(u,i,s,f,y):f==__?curry5ResolveArg3(u,i,s,a,y):curry5ResolveArg4(u,i,s,a,f)))}var u,i,s,a,f,y;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},objectAssign=Object.assign,_arrayExtend=function(r,e){const n=r.length,t=e.length;let o=-1;for(;++o<t;)r[n+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const n=r.length,t=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(n+e.length):new r.constructor(n+e.length);return t.set(r),t.set(e,n),t},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},thunkify1=(r,e)=>function(){return r(e)},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,n,t){return r.write(e,n,t),r},_streamExtendExecutor=(r,e)=>function(n,t){var o,c;e.on("data",__streamWrite(r)),e.on("end",(o=n,c=r,function(){return o(c)})),e.on("error",t)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return null!=(n=e)&&"function"==typeof n.pipe?_streamExtend(r,e):(r.write(e),r);var n},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const n of e)r.add(n);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,n){const t=genericReduce(r,e(noop),null);return isPromise(t)?t.then((o=n,function(){return o})):n;var o},genericTransform=function(r,e,n){if(isArray(n))return genericReduce(r,e(arrayExtend),n);if(isBinary(n)){const t=genericReduce(r,e(arrayExtend),[]);return isPromise(t)?t.then(curry2(binaryExtend,n,__)):binaryExtend(n,t)}if(null==n)return identityTransform(r,e,n);const t=n.constructor;return"string"==typeof n||t==String?genericReduce(r,e(add),n):"function"==typeof n.concat?genericReduce(r,e(callConcat),n):"function"==typeof n.write?genericReduce(r,e(streamExtend),n):t==Set?genericReduce(r,e(setExtend),n):t==Object?genericReduce(r,e(objectAssign),n):identityTransform(r,e,n)},_transform=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)}return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])};export default transform;
|
package/dist/transform.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -305,13 +305,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
305
305
|
|
|
306
306
|
const objectKeys = Object.keys
|
|
307
307
|
|
|
308
|
-
const objectGetFirstKey = function (object) {
|
|
309
|
-
for (const key in object) {
|
|
310
|
-
return key
|
|
311
|
-
}
|
|
312
|
-
return undefined
|
|
313
|
-
}
|
|
314
|
-
|
|
315
308
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
316
309
|
const keysLength = keys.length
|
|
317
310
|
while (++index < keysLength) {
|
|
@@ -372,24 +365,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
372
365
|
return result
|
|
373
366
|
}
|
|
374
367
|
|
|
375
|
-
const funcConcatSync = (
|
|
376
|
-
funcA, funcB,
|
|
377
|
-
) => function pipedFunction(...args) {
|
|
378
|
-
return funcB(funcA(...args))
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
const generatorFunctionReduce = (
|
|
382
|
-
generatorFunction, reducer, result,
|
|
383
|
-
) => funcConcatSync(
|
|
384
|
-
generatorFunction,
|
|
385
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
386
|
-
|
|
387
|
-
const asyncGeneratorFunctionReduce = (
|
|
388
|
-
asyncGeneratorFunction, reducer, result,
|
|
389
|
-
) => funcConcatSync(
|
|
390
|
-
asyncGeneratorFunction,
|
|
391
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
392
|
-
|
|
393
368
|
const reducerConcat = (
|
|
394
369
|
reducerA, reducerB,
|
|
395
370
|
) => function pipedReducer(result, item) {
|
|
@@ -399,26 +374,10 @@ const reducerConcat = (
|
|
|
399
374
|
: reducerB(intermediate, item)
|
|
400
375
|
}
|
|
401
376
|
|
|
402
|
-
const genericReduce = function (
|
|
403
|
-
const collection = args[0]
|
|
377
|
+
const genericReduce = function (collection, reducer, result) {
|
|
404
378
|
if (isArray(collection)) {
|
|
405
379
|
return arrayReduce(collection, reducer, result)
|
|
406
380
|
}
|
|
407
|
-
if (typeof collection == 'function') {
|
|
408
|
-
if (isGeneratorFunction(collection)) {
|
|
409
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
410
|
-
}
|
|
411
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
412
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
413
|
-
}
|
|
414
|
-
return curryArgs3(
|
|
415
|
-
genericReduce,
|
|
416
|
-
__,
|
|
417
|
-
args.length == 1
|
|
418
|
-
? reducerConcat(reducer, collection)
|
|
419
|
-
: args.reduce(reducerConcat, reducer),
|
|
420
|
-
result)
|
|
421
|
-
}
|
|
422
381
|
if (collection == null) {
|
|
423
382
|
return result === undefined
|
|
424
383
|
? curry2(reducer, collection, __)
|
|
@@ -455,10 +414,6 @@ const genericReduce = function (args, reducer, result) {
|
|
|
455
414
|
|
|
456
415
|
const objectAssign = Object.assign
|
|
457
416
|
|
|
458
|
-
const isArrayLike = function (value) {
|
|
459
|
-
return value != null && value.length > 0
|
|
460
|
-
}
|
|
461
|
-
|
|
462
417
|
const _arrayExtend = function (array, values) {
|
|
463
418
|
const arrayLength = array.length,
|
|
464
419
|
valuesLength = values.length
|
|
@@ -470,7 +425,7 @@ const _arrayExtend = function (array, values) {
|
|
|
470
425
|
}
|
|
471
426
|
|
|
472
427
|
const arrayExtend = function (array, values) {
|
|
473
|
-
if (
|
|
428
|
+
if (isArray(values) || isBinary(values)) {
|
|
474
429
|
return _arrayExtend(array, values)
|
|
475
430
|
}
|
|
476
431
|
array.push(values)
|
|
@@ -545,57 +500,66 @@ const callConcat = function (object, values) {
|
|
|
545
500
|
return object.concat(values)
|
|
546
501
|
}
|
|
547
502
|
|
|
548
|
-
const identityTransform = function (
|
|
549
|
-
const nil = genericReduce(
|
|
503
|
+
const identityTransform = function (collection, transducer, result) {
|
|
504
|
+
const nil = genericReduce(collection, transducer(noop), null)
|
|
550
505
|
return isPromise(nil) ? nil.then(always(result)) : result
|
|
551
506
|
}
|
|
552
507
|
|
|
553
|
-
const genericTransform = function (
|
|
508
|
+
const genericTransform = function (collection, transducer, result) {
|
|
554
509
|
if (isArray(result)) {
|
|
555
|
-
return genericReduce(
|
|
510
|
+
return genericReduce(collection, transducer(arrayExtend), result)
|
|
556
511
|
}
|
|
557
512
|
if (isBinary(result)) {
|
|
558
|
-
const intermediateArray = genericReduce(
|
|
513
|
+
const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
|
|
559
514
|
return isPromise(intermediateArray)
|
|
560
515
|
? intermediateArray.then(curry2(binaryExtend, result, __))
|
|
561
516
|
: binaryExtend(result, intermediateArray)
|
|
562
517
|
}
|
|
563
518
|
if (result == null) {
|
|
564
|
-
return identityTransform(
|
|
519
|
+
return identityTransform(collection, transducer, result)
|
|
565
520
|
}
|
|
566
521
|
|
|
567
522
|
const resultConstructor = result.constructor
|
|
568
523
|
if (typeof result == 'string' || resultConstructor == String) {
|
|
569
524
|
// TODO: use array + join over adding
|
|
570
|
-
return genericReduce(
|
|
525
|
+
return genericReduce(collection, transducer(add), result)
|
|
571
526
|
}
|
|
572
527
|
if (typeof result.concat == 'function') {
|
|
573
|
-
return genericReduce(
|
|
528
|
+
return genericReduce(collection, transducer(callConcat), result)
|
|
574
529
|
}
|
|
575
530
|
if (typeof result.write == 'function') {
|
|
576
|
-
return genericReduce(
|
|
531
|
+
return genericReduce(collection, transducer(streamExtend), result)
|
|
577
532
|
}
|
|
578
533
|
if (resultConstructor == Set) {
|
|
579
|
-
return genericReduce(
|
|
534
|
+
return genericReduce(collection, transducer(setExtend), result)
|
|
580
535
|
}
|
|
581
536
|
if (resultConstructor == Object) {
|
|
582
|
-
return genericReduce(
|
|
537
|
+
return genericReduce(collection, transducer(objectAssign), result)
|
|
583
538
|
}
|
|
584
|
-
return identityTransform(
|
|
539
|
+
return identityTransform(collection, transducer, result)
|
|
585
540
|
}
|
|
586
541
|
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
542
|
+
// _transform(collection any, transducer function, initialValue function|any) -> Promise
|
|
543
|
+
const _transform = function (collection, transducer, initialValue) {
|
|
544
|
+
if (typeof initialValue == 'function') {
|
|
545
|
+
const actualInitialValue = initialValue(collection)
|
|
546
|
+
return isPromise(actualInitialValue)
|
|
547
|
+
? actualInitialValue.then(curry3(genericTransform, collection, transducer, __))
|
|
548
|
+
: genericTransform(collection, transducer, actualInitialValue)
|
|
549
|
+
}
|
|
550
|
+
return isPromise(initialValue)
|
|
551
|
+
? initialValue.then(curry3(genericTransform, collection, transducer, __))
|
|
552
|
+
: genericTransform(collection, transducer, initialValue)
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
const transform = function (...args) {
|
|
556
|
+
if (typeof args[0] == 'function') {
|
|
557
|
+
return curry3(_transform, __, args[0], args[1])
|
|
595
558
|
}
|
|
596
|
-
|
|
597
|
-
return
|
|
559
|
+
if (isPromise(args[0])) {
|
|
560
|
+
return args[0].then(curry3(_transform, __, args[1], args[2]))
|
|
598
561
|
}
|
|
562
|
+
return _transform(args[0], args[1], args[2])
|
|
599
563
|
}
|
|
600
564
|
|
|
601
565
|
return transform
|