rubico 1.9.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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/README.md +158 -81
- 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/build +472 -0
- package/compose.js +46 -0
- package/dist/Transducer.es.js +481 -0
- package/dist/Transducer.es.min.js +7 -0
- package/dist/Transducer.js +488 -0
- package/dist/Transducer.min.js +8 -0
- package/dist/Transducer.mjs +481 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +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.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.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.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.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.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.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.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.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.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.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/{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.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.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.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.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.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.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.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.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.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.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.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.mjs +52 -94
- package/dist/rubico.es.js +762 -883
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.global.js +2794 -0
- package/dist/rubico.global.min.js +8 -0
- package/dist/rubico.js +739 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.mjs +762 -883
- 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.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/{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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.mjs +2 -2
- package/dist-test.js +31 -2042
- package/eq.js +21 -63
- package/es.js +739 -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 +739 -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 +22 -11
- 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/tmp.js +1 -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/__.min.mjs +0 -7
- package/dist/all.min.mjs +0 -7
- package/dist/always.min.mjs +0 -7
- package/dist/and.min.mjs +0 -7
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/assign.min.mjs +0 -7
- package/dist/curry.min.mjs +0 -7
- package/dist/eq.min.mjs +0 -7
- package/dist/filter.min.mjs +0 -7
- package/dist/flatMap.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/get.min.mjs +0 -7
- package/dist/gt.min.mjs +0 -7
- package/dist/gte.min.mjs +0 -7
- package/dist/lt.min.mjs +0 -7
- package/dist/lte.min.mjs +0 -7
- package/dist/map.min.mjs +0 -7
- package/dist/not.min.mjs +0 -7
- package/dist/omit.min.mjs +0 -7
- package/dist/or.min.mjs +0 -7
- package/dist/pick.min.mjs +0 -7
- package/dist/pipe.min.mjs +0 -7
- package/dist/reduce.min.mjs +0 -7
- package/dist/rubico.min.mjs +0 -7
- package/dist/set.min.mjs +0 -7
- package/dist/switchCase.min.mjs +0 -7
- package/dist/tap.min.mjs +0 -7
- package/dist/thunkify.min.mjs +0 -7
- package/dist/transform.min.mjs +0 -7
- package/dist/tryCatch.min.mjs +0 -7
- package/dist/x/append.min.mjs +0 -7
- package/dist/x/callProp.min.mjs +0 -7
- package/dist/x/defaultsDeep.min.mjs +0 -7
- package/dist/x/differenceWith.min.mjs +0 -7
- package/dist/x/filterOut.min.mjs +0 -7
- package/dist/x/find.min.mjs +0 -7
- package/dist/x/findIndex.min.mjs +0 -7
- package/dist/x/first.min.mjs +0 -7
- package/dist/x/flatten.min.mjs +0 -7
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/dist/x/groupBy.min.mjs +0 -7
- package/dist/x/has.min.mjs +0 -7
- package/dist/x/identity.min.mjs +0 -7
- package/dist/x/includes.min.mjs +0 -7
- package/dist/x/isDeepEqual.min.mjs +0 -7
- package/dist/x/isEmpty.min.mjs +0 -7
- package/dist/x/isEqual.min.mjs +0 -7
- package/dist/x/isFunction.min.mjs +0 -7
- package/dist/x/isIn.min.mjs +0 -7
- package/dist/x/isObject.min.mjs +0 -7
- package/dist/x/isString.min.mjs +0 -7
- package/dist/x/keys.min.mjs +0 -7
- package/dist/x/last.min.mjs +0 -7
- package/dist/x/maxBy.min.mjs +0 -7
- package/dist/x/noop.min.mjs +0 -7
- package/dist/x/pluck.min.mjs +0 -7
- package/dist/x/prepend.min.mjs +0 -7
- package/dist/x/size.min.mjs +0 -7
- package/dist/x/trace.min.mjs +0 -7
- package/dist/x/unionWith.min.mjs +0 -7
- package/dist/x/uniq.min.mjs +0 -7
- package/dist/x/unless.min.mjs +0 -7
- package/dist/x/values.min.mjs +0 -7
- package/dist/x/when.min.mjs +0 -7
- package/distributor.js +0 -495
- 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/reduce.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
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
|
|
|
@@ -46,37 +46,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
46
46
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
// argument resolver for curryArgs3
|
|
50
|
-
const curryArgs3ResolveArgs0 = (
|
|
51
|
-
baseFunc, arg1, arg2,
|
|
52
|
-
) => function args0Resolver(...args) {
|
|
53
|
-
return baseFunc(args, arg1, arg2)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// argument resolver for curryArgs3
|
|
57
|
-
const curryArgs3ResolveArgs1 = (
|
|
58
|
-
baseFunc, arg0, arg2,
|
|
59
|
-
) => function arg1Resolver(...args) {
|
|
60
|
-
return baseFunc(arg0, args, arg2)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// argument resolver for curryArgs3
|
|
64
|
-
const curryArgs3ResolveArgs2 = (
|
|
65
|
-
baseFunc, arg0, arg1,
|
|
66
|
-
) => function arg2Resolver(...args) {
|
|
67
|
-
return baseFunc(arg0, arg1, args)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
71
|
-
if (arg0 == __) {
|
|
72
|
-
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
73
|
-
}
|
|
74
|
-
if (arg1 == __) {
|
|
75
|
-
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
76
|
-
}
|
|
77
|
-
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
49
|
const isArray = Array.isArray
|
|
81
50
|
|
|
82
51
|
const objectValues = Object.values
|
|
@@ -173,6 +142,37 @@ const curry2 = function (baseFunc, arg0, arg1) {
|
|
|
173
142
|
: curry2ResolveArg1(baseFunc, arg0)
|
|
174
143
|
}
|
|
175
144
|
|
|
145
|
+
// argument resolver for curryArgs3
|
|
146
|
+
const curryArgs3ResolveArgs0 = (
|
|
147
|
+
baseFunc, arg1, arg2,
|
|
148
|
+
) => function args0Resolver(...args) {
|
|
149
|
+
return baseFunc(args, arg1, arg2)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
// argument resolver for curryArgs3
|
|
153
|
+
const curryArgs3ResolveArgs1 = (
|
|
154
|
+
baseFunc, arg0, arg2,
|
|
155
|
+
) => function arg1Resolver(...args) {
|
|
156
|
+
return baseFunc(arg0, args, arg2)
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// argument resolver for curryArgs3
|
|
160
|
+
const curryArgs3ResolveArgs2 = (
|
|
161
|
+
baseFunc, arg0, arg1,
|
|
162
|
+
) => function arg2Resolver(...args) {
|
|
163
|
+
return baseFunc(arg0, arg1, args)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
167
|
+
if (arg0 == __) {
|
|
168
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
169
|
+
}
|
|
170
|
+
if (arg1 == __) {
|
|
171
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
172
|
+
}
|
|
173
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
176
|
// argument resolver for curry4
|
|
177
177
|
const curry4ResolveArg0 = (
|
|
178
178
|
baseFunc, arg1, arg2, arg3,
|
|
@@ -295,13 +295,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
295
295
|
|
|
296
296
|
const objectKeys = Object.keys
|
|
297
297
|
|
|
298
|
-
const objectGetFirstKey = function (object) {
|
|
299
|
-
for (const key in object) {
|
|
300
|
-
return key
|
|
301
|
-
}
|
|
302
|
-
return undefined
|
|
303
|
-
}
|
|
304
|
-
|
|
305
298
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
306
299
|
const keysLength = keys.length
|
|
307
300
|
while (++index < keysLength) {
|
|
@@ -362,24 +355,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
362
355
|
return result
|
|
363
356
|
}
|
|
364
357
|
|
|
365
|
-
const funcConcatSync = (
|
|
366
|
-
funcA, funcB,
|
|
367
|
-
) => function pipedFunction(...args) {
|
|
368
|
-
return funcB(funcA(...args))
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
const generatorFunctionReduce = (
|
|
372
|
-
generatorFunction, reducer, result,
|
|
373
|
-
) => funcConcatSync(
|
|
374
|
-
generatorFunction,
|
|
375
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
376
|
-
|
|
377
|
-
const asyncGeneratorFunctionReduce = (
|
|
378
|
-
asyncGeneratorFunction, reducer, result,
|
|
379
|
-
) => funcConcatSync(
|
|
380
|
-
asyncGeneratorFunction,
|
|
381
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
382
|
-
|
|
383
358
|
const reducerConcat = (
|
|
384
359
|
reducerA, reducerB,
|
|
385
360
|
) => function pipedReducer(result, item) {
|
|
@@ -389,26 +364,10 @@ const reducerConcat = (
|
|
|
389
364
|
: reducerB(intermediate, item)
|
|
390
365
|
}
|
|
391
366
|
|
|
392
|
-
const genericReduce = function (
|
|
393
|
-
const collection = args[0]
|
|
367
|
+
const genericReduce = function (collection, reducer, result) {
|
|
394
368
|
if (isArray(collection)) {
|
|
395
369
|
return arrayReduce(collection, reducer, result)
|
|
396
370
|
}
|
|
397
|
-
if (typeof collection == 'function') {
|
|
398
|
-
if (isGeneratorFunction(collection)) {
|
|
399
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
400
|
-
}
|
|
401
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
402
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
403
|
-
}
|
|
404
|
-
return curryArgs3(
|
|
405
|
-
genericReduce,
|
|
406
|
-
__,
|
|
407
|
-
args.length == 1
|
|
408
|
-
? reducerConcat(reducer, collection)
|
|
409
|
-
: args.reduce(reducerConcat, reducer),
|
|
410
|
-
result)
|
|
411
|
-
}
|
|
412
371
|
if (collection == null) {
|
|
413
372
|
return result === undefined
|
|
414
373
|
? curry2(reducer, collection, __)
|
|
@@ -443,28 +402,27 @@ const genericReduce = function (args, reducer, result) {
|
|
|
443
402
|
: reducer(result, collection)
|
|
444
403
|
}
|
|
445
404
|
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
const
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
return genericReduce([args[0]], reducer, initialValue)
|
|
405
|
+
// _reduce(collection any, reducer function, initialValue function|any) -> Promise
|
|
406
|
+
const _reduce = function (collection, reducer, initialValue) {
|
|
407
|
+
if (typeof initialValue == 'function') {
|
|
408
|
+
const actualInitialValue = initialValue(collection)
|
|
409
|
+
return isPromise(actualInitialValue)
|
|
410
|
+
? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
411
|
+
: genericReduce(collection, reducer, actualInitialValue)
|
|
454
412
|
}
|
|
413
|
+
return isPromise(initialValue)
|
|
414
|
+
? initialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
415
|
+
: genericReduce(collection, reducer, initialValue)
|
|
416
|
+
}
|
|
455
417
|
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
return isPromise(result)
|
|
463
|
-
? result.then(curry3(genericReduce, args, reducer, __))
|
|
464
|
-
: genericReduce(args, reducer, result)
|
|
465
|
-
}
|
|
418
|
+
const reduce = function (...args) {
|
|
419
|
+
if (typeof args[0] == 'function') {
|
|
420
|
+
return curry3(_reduce, __, args[0], args[1])
|
|
421
|
+
}
|
|
422
|
+
if (isPromise(args[0])) {
|
|
423
|
+
return args[0].then(curry3(_reduce, __, args[1], args[2]))
|
|
466
424
|
}
|
|
467
|
-
return
|
|
425
|
+
return _reduce(args[0], args[1], args[2])
|
|
468
426
|
}
|
|
469
427
|
|
|
470
428
|
return reduce
|
package/dist/reduce.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
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(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.reduce=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),e=function(n,e,
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.reduce=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),e=function(n,e,r,o){return e==t?((n,t,e)=>function(r){return n(r,t,e)})(n,r,o):r==t?((n,t,e)=>function(r){return n(t,r,e)})(n,e,o):((n,t,e)=>function(r){return n(t,e,r)})(n,e,r)},r=Array.isArray,o=(Object.values,Object.prototype.toString,async function(t,e,r){let o=t.next();if(o.done)return r;for(;!o.done;)r=e(r,o.value),n(r)&&(r=await r),o=t.next();return r}),u=Symbol.iterator,f=Symbol.asyncIterator,i=function(n,e,r){return e==t?((n,t)=>function(e){return n(e,t)})(n,r):((n,t)=>function(e){return n(t,e)})(n,e)},c=function(n,e,r,o,u){return e==t?((n,t,e,r)=>function(o){return n(o,t,e,r)})(n,r,o,u):r==t?((n,t,e,r)=>function(o){return n(t,o,e,r)})(n,e,o,u):o==t?((n,t,e,r)=>function(o){return n(t,e,o,r)})(n,e,r,u):((n,t,e,r)=>function(o){return n(t,e,r,o)})(n,e,r,o)},a=async function(t,e,r,o){const u=t.length;for(;++o<u;)r=e(r,t[o],o,t),n(r)&&(r=await r);return r},l=Object.keys,s=async function(t,e,r,o,u){const f=o.length;for(;++u<f;){const f=o[u];r=e(r,t[f],f,t),n(r)&&(r=await r)}return r},y=async function(t,e,r,o){for(const[u,f]of o)r=e(r,f,u,t),n(r)&&(r=await r);return r},d=function(d,h,p){return r(d)?function(e,r,o){const u=e.length;let f=-1;for(void 0===o&&(o=e[++f]);++f<u;)if(o=r(o,e[f],f,e),n(o))return o.then(c(a,e,r,t,f));return o}(d,h,p):null==d?void 0===p?i(h,d,t):h(p,d):d.constructor==Map?function(e,r,o){const u=e.entries();if(void 0===o){const n=u.next();if(n.done)return o;o=n.value[1]}for(const[f,i]of u)if(o=r(o,i,f,e),n(o))return o.then(c(y,e,r,t,u));return o}(d,h,p):"function"==typeof d[u]?function(r,u,f){let i=r.next();if(i.done)return f;for(void 0===f&&(f=i.value,i=r.next());!i.done;){if(f=u(f,i.value),n(f))return f.then(e(o,r,u,t));i=r.next()}return f}(d[u](),h,p):"function"==typeof d[f]?async function(n,t,e){let r=await n.next();if(r.done)return e;for(void 0===e&&(e=r.value,r=await n.next());!r.done;)e=await t(e,r.value),r=await n.next();return e}(d[f](),h,p):"function"==typeof d.reduce?d.reduce(h,p):"function"==typeof d.chain?d.chain(i(h,p,t)):"function"==typeof d.flatMap?d.flatMap(i(h,p,t)):d.constructor==Object?function(e,r,o){const u=l(e),f=u.length;let i=-1;for(void 0===o&&(o=e[u[++i]]);++i<f;){const f=u[i];if(o=r(o,e[f],f,e),n(o))return o.then((c=s,y=r,d=t,h=u,p=i,(a=e)==t?((n,t,e,r,o)=>function(u){return n(u,t,e,r,o)})(c,y,d,h,p):y==t?((n,t,e,r,o)=>function(u){return n(t,u,e,r,o)})(c,a,d,h,p):d==t?((n,t,e,r,o)=>function(u){return n(t,e,u,r,o)})(c,a,y,h,p):h==t?((n,t,e,r,o)=>function(u){return n(t,e,r,u,o)})(c,a,y,d,p):((n,t,e,r,o)=>function(u){return n(t,e,r,o,u)})(c,a,y,d,h)))}var c,a,y,d,h,p;return o}(d,h,p):void 0===p?i(h,d,t):h(p,d)},h=function(r,o,u){if("function"==typeof u){const f=u(r);return n(f)?f.then(e(d,r,o,t)):d(r,o,f)}return n(u)?u.then(e(d,r,o,t)):d(r,o,u)};return function(...r){return"function"==typeof r[0]?e(h,t,r[0],r[1]):n(r[0])?r[0].then(e(h,t,r[1],r[2])):h(r[0],r[1],r[2])}}());
|
package/dist/reduce.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
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
|
|
|
@@ -40,37 +40,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
40
40
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
// argument resolver for curryArgs3
|
|
44
|
-
const curryArgs3ResolveArgs0 = (
|
|
45
|
-
baseFunc, arg1, arg2,
|
|
46
|
-
) => function args0Resolver(...args) {
|
|
47
|
-
return baseFunc(args, arg1, arg2)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// argument resolver for curryArgs3
|
|
51
|
-
const curryArgs3ResolveArgs1 = (
|
|
52
|
-
baseFunc, arg0, arg2,
|
|
53
|
-
) => function arg1Resolver(...args) {
|
|
54
|
-
return baseFunc(arg0, args, arg2)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// argument resolver for curryArgs3
|
|
58
|
-
const curryArgs3ResolveArgs2 = (
|
|
59
|
-
baseFunc, arg0, arg1,
|
|
60
|
-
) => function arg2Resolver(...args) {
|
|
61
|
-
return baseFunc(arg0, arg1, args)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
65
|
-
if (arg0 == __) {
|
|
66
|
-
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
67
|
-
}
|
|
68
|
-
if (arg1 == __) {
|
|
69
|
-
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
70
|
-
}
|
|
71
|
-
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
43
|
const isArray = Array.isArray
|
|
75
44
|
|
|
76
45
|
const objectValues = Object.values
|
|
@@ -167,6 +136,37 @@ const curry2 = function (baseFunc, arg0, arg1) {
|
|
|
167
136
|
: curry2ResolveArg1(baseFunc, arg0)
|
|
168
137
|
}
|
|
169
138
|
|
|
139
|
+
// argument resolver for curryArgs3
|
|
140
|
+
const curryArgs3ResolveArgs0 = (
|
|
141
|
+
baseFunc, arg1, arg2,
|
|
142
|
+
) => function args0Resolver(...args) {
|
|
143
|
+
return baseFunc(args, arg1, arg2)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// argument resolver for curryArgs3
|
|
147
|
+
const curryArgs3ResolveArgs1 = (
|
|
148
|
+
baseFunc, arg0, arg2,
|
|
149
|
+
) => function arg1Resolver(...args) {
|
|
150
|
+
return baseFunc(arg0, args, arg2)
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// argument resolver for curryArgs3
|
|
154
|
+
const curryArgs3ResolveArgs2 = (
|
|
155
|
+
baseFunc, arg0, arg1,
|
|
156
|
+
) => function arg2Resolver(...args) {
|
|
157
|
+
return baseFunc(arg0, arg1, args)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
161
|
+
if (arg0 == __) {
|
|
162
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
163
|
+
}
|
|
164
|
+
if (arg1 == __) {
|
|
165
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
166
|
+
}
|
|
167
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
168
|
+
}
|
|
169
|
+
|
|
170
170
|
// argument resolver for curry4
|
|
171
171
|
const curry4ResolveArg0 = (
|
|
172
172
|
baseFunc, arg1, arg2, arg3,
|
|
@@ -289,13 +289,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
289
289
|
|
|
290
290
|
const objectKeys = Object.keys
|
|
291
291
|
|
|
292
|
-
const objectGetFirstKey = function (object) {
|
|
293
|
-
for (const key in object) {
|
|
294
|
-
return key
|
|
295
|
-
}
|
|
296
|
-
return undefined
|
|
297
|
-
}
|
|
298
|
-
|
|
299
292
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
300
293
|
const keysLength = keys.length
|
|
301
294
|
while (++index < keysLength) {
|
|
@@ -356,24 +349,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
356
349
|
return result
|
|
357
350
|
}
|
|
358
351
|
|
|
359
|
-
const funcConcatSync = (
|
|
360
|
-
funcA, funcB,
|
|
361
|
-
) => function pipedFunction(...args) {
|
|
362
|
-
return funcB(funcA(...args))
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
const generatorFunctionReduce = (
|
|
366
|
-
generatorFunction, reducer, result,
|
|
367
|
-
) => funcConcatSync(
|
|
368
|
-
generatorFunction,
|
|
369
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
370
|
-
|
|
371
|
-
const asyncGeneratorFunctionReduce = (
|
|
372
|
-
asyncGeneratorFunction, reducer, result,
|
|
373
|
-
) => funcConcatSync(
|
|
374
|
-
asyncGeneratorFunction,
|
|
375
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
376
|
-
|
|
377
352
|
const reducerConcat = (
|
|
378
353
|
reducerA, reducerB,
|
|
379
354
|
) => function pipedReducer(result, item) {
|
|
@@ -383,26 +358,10 @@ const reducerConcat = (
|
|
|
383
358
|
: reducerB(intermediate, item)
|
|
384
359
|
}
|
|
385
360
|
|
|
386
|
-
const genericReduce = function (
|
|
387
|
-
const collection = args[0]
|
|
361
|
+
const genericReduce = function (collection, reducer, result) {
|
|
388
362
|
if (isArray(collection)) {
|
|
389
363
|
return arrayReduce(collection, reducer, result)
|
|
390
364
|
}
|
|
391
|
-
if (typeof collection == 'function') {
|
|
392
|
-
if (isGeneratorFunction(collection)) {
|
|
393
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
394
|
-
}
|
|
395
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
396
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
397
|
-
}
|
|
398
|
-
return curryArgs3(
|
|
399
|
-
genericReduce,
|
|
400
|
-
__,
|
|
401
|
-
args.length == 1
|
|
402
|
-
? reducerConcat(reducer, collection)
|
|
403
|
-
: args.reduce(reducerConcat, reducer),
|
|
404
|
-
result)
|
|
405
|
-
}
|
|
406
365
|
if (collection == null) {
|
|
407
366
|
return result === undefined
|
|
408
367
|
? curry2(reducer, collection, __)
|
|
@@ -437,28 +396,27 @@ const genericReduce = function (args, reducer, result) {
|
|
|
437
396
|
: reducer(result, collection)
|
|
438
397
|
}
|
|
439
398
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
const
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
return genericReduce([args[0]], reducer, initialValue)
|
|
399
|
+
// _reduce(collection any, reducer function, initialValue function|any) -> Promise
|
|
400
|
+
const _reduce = function (collection, reducer, initialValue) {
|
|
401
|
+
if (typeof initialValue == 'function') {
|
|
402
|
+
const actualInitialValue = initialValue(collection)
|
|
403
|
+
return isPromise(actualInitialValue)
|
|
404
|
+
? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
405
|
+
: genericReduce(collection, reducer, actualInitialValue)
|
|
448
406
|
}
|
|
407
|
+
return isPromise(initialValue)
|
|
408
|
+
? initialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
409
|
+
: genericReduce(collection, reducer, initialValue)
|
|
410
|
+
}
|
|
449
411
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
return isPromise(result)
|
|
457
|
-
? result.then(curry3(genericReduce, args, reducer, __))
|
|
458
|
-
: genericReduce(args, reducer, result)
|
|
459
|
-
}
|
|
412
|
+
const reduce = function (...args) {
|
|
413
|
+
if (typeof args[0] == 'function') {
|
|
414
|
+
return curry3(_reduce, __, args[0], args[1])
|
|
415
|
+
}
|
|
416
|
+
if (isPromise(args[0])) {
|
|
417
|
+
return args[0].then(curry3(_reduce, __, args[1], args[2]))
|
|
460
418
|
}
|
|
461
|
-
return
|
|
419
|
+
return _reduce(args[0], args[1], args[2])
|
|
462
420
|
}
|
|
463
421
|
|
|
464
422
|
export default reduce
|