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/x/flatten.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
7
|
|
|
@@ -464,13 +464,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
464
464
|
|
|
465
465
|
const objectKeys = Object.keys
|
|
466
466
|
|
|
467
|
-
const objectGetFirstKey = function (object) {
|
|
468
|
-
for (const key in object) {
|
|
469
|
-
return key
|
|
470
|
-
}
|
|
471
|
-
return undefined
|
|
472
|
-
}
|
|
473
|
-
|
|
474
467
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
475
468
|
const keysLength = keys.length
|
|
476
469
|
while (++index < keysLength) {
|
|
@@ -531,18 +524,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
531
524
|
return result
|
|
532
525
|
}
|
|
533
526
|
|
|
534
|
-
const generatorFunctionReduce = (
|
|
535
|
-
generatorFunction, reducer, result,
|
|
536
|
-
) => funcConcatSync(
|
|
537
|
-
generatorFunction,
|
|
538
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
539
|
-
|
|
540
|
-
const asyncGeneratorFunctionReduce = (
|
|
541
|
-
asyncGeneratorFunction, reducer, result,
|
|
542
|
-
) => funcConcatSync(
|
|
543
|
-
asyncGeneratorFunction,
|
|
544
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
545
|
-
|
|
546
527
|
const reducerConcat = (
|
|
547
528
|
reducerA, reducerB,
|
|
548
529
|
) => function pipedReducer(result, item) {
|
|
@@ -552,26 +533,10 @@ const reducerConcat = (
|
|
|
552
533
|
: reducerB(intermediate, item)
|
|
553
534
|
}
|
|
554
535
|
|
|
555
|
-
const genericReduce = function (
|
|
556
|
-
const collection = args[0]
|
|
536
|
+
const genericReduce = function (collection, reducer, result) {
|
|
557
537
|
if (isArray(collection)) {
|
|
558
538
|
return arrayReduce(collection, reducer, result)
|
|
559
539
|
}
|
|
560
|
-
if (typeof collection == 'function') {
|
|
561
|
-
if (isGeneratorFunction(collection)) {
|
|
562
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
563
|
-
}
|
|
564
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
565
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
566
|
-
}
|
|
567
|
-
return curryArgs3(
|
|
568
|
-
genericReduce,
|
|
569
|
-
__,
|
|
570
|
-
args.length == 1
|
|
571
|
-
? reducerConcat(reducer, collection)
|
|
572
|
-
: args.reduce(reducerConcat, reducer),
|
|
573
|
-
result)
|
|
574
|
-
}
|
|
575
540
|
if (collection == null) {
|
|
576
541
|
return result === undefined
|
|
577
542
|
? curry2(reducer, collection, __)
|
|
@@ -625,7 +590,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
625
590
|
return iteration
|
|
626
591
|
}
|
|
627
592
|
const monadAsArray = genericReduce(
|
|
628
|
-
|
|
593
|
+
flatMapper(iteration.value),
|
|
629
594
|
arrayPush,
|
|
630
595
|
[]) // this will always have at least one item
|
|
631
596
|
if (monadAsArray.length > 1) {
|
|
@@ -671,12 +636,12 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
671
636
|
} else {
|
|
672
637
|
const monad = flatMapper(value)
|
|
673
638
|
if (isPromise(monad)) {
|
|
674
|
-
const bufferLoading =
|
|
675
|
-
|
|
639
|
+
const bufferLoading =
|
|
640
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
676
641
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
677
642
|
promises.add(promise)
|
|
678
643
|
} else {
|
|
679
|
-
const bufferLoading = genericReduce(
|
|
644
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
680
645
|
if (isPromise(bufferLoading)) {
|
|
681
646
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
682
647
|
promises.add(promise)
|
|
@@ -696,8 +661,6 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
696
661
|
}
|
|
697
662
|
}
|
|
698
663
|
|
|
699
|
-
const isBinary = ArrayBuffer.isView
|
|
700
|
-
|
|
701
664
|
const arrayMap = function (array, mapper) {
|
|
702
665
|
const arrayLength = array.length,
|
|
703
666
|
result = Array(arrayLength)
|
|
@@ -811,165 +774,10 @@ const stringFlatMap = function (string, flatMapper) {
|
|
|
811
774
|
: arrayFlattenToString(monadArray)
|
|
812
775
|
}
|
|
813
776
|
|
|
814
|
-
const
|
|
815
|
-
stream.write(chunk, encoding, callback)
|
|
816
|
-
return stream
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
const streamFlatExtend = async function (stream, item) {
|
|
820
|
-
const resultStreamWrite = curry2(streamWrite, stream, __),
|
|
821
|
-
// resultStreamWriteReducer = (_, subItem) => stream.write(subItem),
|
|
822
|
-
resultStreamWriteReducer = funcConcatSync(getArg1, resultStreamWrite),
|
|
823
|
-
promises = []
|
|
824
|
-
if (isArray(item)) {
|
|
825
|
-
const itemLength = item.length
|
|
826
|
-
let itemIndex = -1
|
|
827
|
-
while (++itemIndex < itemLength) {
|
|
828
|
-
stream.write(item[itemIndex])
|
|
829
|
-
}
|
|
830
|
-
} else if (item == null) {
|
|
831
|
-
stream.write(item)
|
|
832
|
-
} else if (typeof item[symbolIterator] == 'function') {
|
|
833
|
-
for (const subItem of item) {
|
|
834
|
-
stream.write(subItem)
|
|
835
|
-
}
|
|
836
|
-
} else if (typeof item[symbolAsyncIterator] == 'function') {
|
|
837
|
-
promises.push(
|
|
838
|
-
asyncIteratorForEach(item[symbolAsyncIterator](), resultStreamWrite))
|
|
839
|
-
} else if (typeof item.chain == 'function') {
|
|
840
|
-
const monadValue = item.chain(identity)
|
|
841
|
-
isPromise(monadValue)
|
|
842
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
843
|
-
: stream.write(monadValue)
|
|
844
|
-
} else if (typeof item.flatMap == 'function') {
|
|
845
|
-
const monadValue = item.flatMap(identity)
|
|
846
|
-
isPromise(monadValue)
|
|
847
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
848
|
-
: stream.write(monadValue)
|
|
849
|
-
} else if (typeof item.reduce == 'function') {
|
|
850
|
-
const folded = item.reduce(resultStreamWriteReducer, null)
|
|
851
|
-
isPromise(folded) && promises.push(folded)
|
|
852
|
-
} else if (item.constructor == Object) {
|
|
853
|
-
for (const key in item) {
|
|
854
|
-
stream.write(item[key])
|
|
855
|
-
}
|
|
856
|
-
} else {
|
|
857
|
-
stream.write(item)
|
|
858
|
-
}
|
|
859
|
-
return promises.length == 0
|
|
860
|
-
? stream
|
|
861
|
-
: promiseAll(promises).then(always(stream))
|
|
862
|
-
}
|
|
863
|
-
|
|
864
|
-
const streamFlatMap = async function (stream, flatMapper) {
|
|
865
|
-
const promises = new Set()
|
|
866
|
-
for await (const item of stream) {
|
|
867
|
-
const monad = flatMapper(item)
|
|
868
|
-
if (isPromise(monad)) {
|
|
869
|
-
const selfDeletingPromise = monad.then(
|
|
870
|
-
curry2(streamFlatExtend, stream, __)).then(
|
|
871
|
-
() => promises.delete(selfDeletingPromise))
|
|
872
|
-
promises.add(selfDeletingPromise)
|
|
873
|
-
} else {
|
|
874
|
-
const streamFlatteningOperation = streamFlatExtend(stream, monad)
|
|
875
|
-
if (isPromise(streamFlatteningOperation)) {
|
|
876
|
-
const selfDeletingPromise = streamFlatteningOperation.then(
|
|
877
|
-
() => promises.delete(selfDeletingPromise))
|
|
878
|
-
promises.add(selfDeletingPromise)
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
}
|
|
882
|
-
await promiseAll(promises)
|
|
883
|
-
return stream
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
const globalThisHasBuffer = typeof Buffer == 'function'
|
|
887
|
-
|
|
888
|
-
const noop = function () {}
|
|
889
|
-
|
|
890
|
-
const bufferAlloc = globalThisHasBuffer ? Buffer.alloc : noop
|
|
891
|
-
|
|
892
|
-
const _binaryExtend = function (typedArray, array) {
|
|
893
|
-
const offset = typedArray.length
|
|
894
|
-
const result = globalThisHasBuffer && typedArray.constructor == Buffer
|
|
895
|
-
? bufferAlloc(offset + array.length)
|
|
896
|
-
: new typedArray.constructor(offset + array.length)
|
|
897
|
-
result.set(typedArray)
|
|
898
|
-
result.set(array, offset)
|
|
899
|
-
return result
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
const binaryExtend = function (typedArray, array) {
|
|
903
|
-
if (isArray(array) || isBinary(array)) {
|
|
904
|
-
return _binaryExtend(typedArray, array)
|
|
905
|
-
}
|
|
906
|
-
return _binaryExtend(typedArray, [array])
|
|
907
|
-
}
|
|
908
|
-
|
|
909
|
-
const arrayJoinToBinary = function (array, init) {
|
|
910
|
-
const length = array.length
|
|
911
|
-
let index = -1,
|
|
912
|
-
result = init
|
|
913
|
-
while (++index < length) {
|
|
914
|
-
result = binaryExtend(result, array[index])
|
|
915
|
-
}
|
|
916
|
-
return result
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
const arrayFlattenToBinary = function (array, result) {
|
|
920
|
-
const flattened = arrayFlatten(array)
|
|
921
|
-
return isPromise(flattened)
|
|
922
|
-
? flattened.then(curry2(arrayJoinToBinary, __, result))
|
|
923
|
-
: arrayJoinToBinary(flattened, result)
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
const binaryFlatMap = function (binary, flatMapper) {
|
|
927
|
-
const monadArray = arrayMap(binary, flatMapper),
|
|
928
|
-
result = globalThisHasBuffer && binary.constructor == Buffer
|
|
929
|
-
? bufferAlloc(0)
|
|
930
|
-
: new binary.constructor(0)
|
|
931
|
-
return isPromise(monadArray)
|
|
932
|
-
? monadArray.then(curry2(arrayFlattenToBinary, __, result))
|
|
933
|
-
: arrayFlattenToBinary(monadArray, result)
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
const reducerFlatMap = (
|
|
937
|
-
reducer, flatMapper,
|
|
938
|
-
) => function flatMappingReducer(result, value) {
|
|
939
|
-
const monad = flatMapper(value)
|
|
940
|
-
return isPromise(monad)
|
|
941
|
-
? monad.then(curryArgs3(genericReduce, __, reducer, result))
|
|
942
|
-
: genericReduce([monad], reducer, result)
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
const generatorFunctionFlatMap = (
|
|
946
|
-
generatorFunction, flatMapper,
|
|
947
|
-
) => function* flatMappingGeneratorFunction(...args) {
|
|
948
|
-
yield* FlatMappingIterator(generatorFunction(...args), flatMapper)
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
const asyncGeneratorFunctionFlatMap = (
|
|
952
|
-
asyncGeneratorFunction, flatMapper,
|
|
953
|
-
) => async function* flatMappingAsyncGeneratorFunction(...args) {
|
|
954
|
-
yield* FlatMappingAsyncIterator(asyncGeneratorFunction(...args), flatMapper)
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
const flatMap = flatMapper => function flatMapping(value) {
|
|
777
|
+
const _flatMap = function (value, flatMapper) {
|
|
958
778
|
if (isArray(value)) {
|
|
959
779
|
return arrayFlatMap(value, flatMapper)
|
|
960
780
|
}
|
|
961
|
-
if (typeof value == 'function') {
|
|
962
|
-
if (isGeneratorFunction(value)) {
|
|
963
|
-
return generatorFunctionFlatMap(value, flatMapper)
|
|
964
|
-
}
|
|
965
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
966
|
-
return asyncGeneratorFunctionFlatMap(value, flatMapper)
|
|
967
|
-
}
|
|
968
|
-
return reducerFlatMap(value, flatMapper)
|
|
969
|
-
}
|
|
970
|
-
if (isBinary(value)) {
|
|
971
|
-
return binaryFlatMap(value, flatMapper)
|
|
972
|
-
}
|
|
973
781
|
if (value == null) {
|
|
974
782
|
return flatMapper(value)
|
|
975
783
|
}
|
|
@@ -988,12 +796,6 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
988
796
|
if (typeof value.flatMap == 'function') {
|
|
989
797
|
return value.flatMap(flatMapper)
|
|
990
798
|
}
|
|
991
|
-
if (
|
|
992
|
-
typeof value[symbolAsyncIterator] == 'function'
|
|
993
|
-
&& typeof value.write == 'function'
|
|
994
|
-
) {
|
|
995
|
-
return streamFlatMap(value, flatMapper)
|
|
996
|
-
}
|
|
997
799
|
const valueConstructor = value.constructor
|
|
998
800
|
if (valueConstructor == Object) {
|
|
999
801
|
return objectFlatMap(value, flatMapper)
|
|
@@ -1007,6 +809,17 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
1007
809
|
return flatMapper(value)
|
|
1008
810
|
}
|
|
1009
811
|
|
|
812
|
+
const flatMap = (...args) => {
|
|
813
|
+
const flatMapper = args.pop()
|
|
814
|
+
if (args.length == 0) {
|
|
815
|
+
return curry2(_flatMap, __, flatMapper)
|
|
816
|
+
}
|
|
817
|
+
const collection = args[0]
|
|
818
|
+
return isPromise(collection)
|
|
819
|
+
? collection.then(curry2(_flatMap, __, flatMapper))
|
|
820
|
+
: _flatMap(args[0], flatMapper)
|
|
821
|
+
}
|
|
822
|
+
|
|
1010
823
|
const flatten = function (value) {
|
|
1011
824
|
if (isArray(value)) {
|
|
1012
825
|
return arrayFlatten(value)
|
|
@@ -1020,7 +833,7 @@ const flatten = function (value) {
|
|
|
1020
833
|
if (value.constructor == Object) {
|
|
1021
834
|
return objectFlatten(value)
|
|
1022
835
|
}
|
|
1023
|
-
return flatMap(identity)
|
|
836
|
+
return flatMap(value, identity)
|
|
1024
837
|
}
|
|
1025
838
|
|
|
1026
839
|
export default flatten
|
package/dist/x/groupBy.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
|
// () => Map<>
|
|
@@ -42,37 +42,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
42
42
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
// argument resolver for curryArgs3
|
|
46
|
-
const curryArgs3ResolveArgs0 = (
|
|
47
|
-
baseFunc, arg1, arg2,
|
|
48
|
-
) => function args0Resolver(...args) {
|
|
49
|
-
return baseFunc(args, arg1, arg2)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// argument resolver for curryArgs3
|
|
53
|
-
const curryArgs3ResolveArgs1 = (
|
|
54
|
-
baseFunc, arg0, arg2,
|
|
55
|
-
) => function arg1Resolver(...args) {
|
|
56
|
-
return baseFunc(arg0, args, arg2)
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// argument resolver for curryArgs3
|
|
60
|
-
const curryArgs3ResolveArgs2 = (
|
|
61
|
-
baseFunc, arg0, arg1,
|
|
62
|
-
) => function arg2Resolver(...args) {
|
|
63
|
-
return baseFunc(arg0, arg1, args)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
67
|
-
if (arg0 == __) {
|
|
68
|
-
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
69
|
-
}
|
|
70
|
-
if (arg1 == __) {
|
|
71
|
-
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
72
|
-
}
|
|
73
|
-
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
45
|
const isArray = Array.isArray
|
|
77
46
|
|
|
78
47
|
const objectValues = Object.values
|
|
@@ -169,6 +138,37 @@ const curry2 = function (baseFunc, arg0, arg1) {
|
|
|
169
138
|
: curry2ResolveArg1(baseFunc, arg0)
|
|
170
139
|
}
|
|
171
140
|
|
|
141
|
+
// argument resolver for curryArgs3
|
|
142
|
+
const curryArgs3ResolveArgs0 = (
|
|
143
|
+
baseFunc, arg1, arg2,
|
|
144
|
+
) => function args0Resolver(...args) {
|
|
145
|
+
return baseFunc(args, arg1, arg2)
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// argument resolver for curryArgs3
|
|
149
|
+
const curryArgs3ResolveArgs1 = (
|
|
150
|
+
baseFunc, arg0, arg2,
|
|
151
|
+
) => function arg1Resolver(...args) {
|
|
152
|
+
return baseFunc(arg0, args, arg2)
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// argument resolver for curryArgs3
|
|
156
|
+
const curryArgs3ResolveArgs2 = (
|
|
157
|
+
baseFunc, arg0, arg1,
|
|
158
|
+
) => function arg2Resolver(...args) {
|
|
159
|
+
return baseFunc(arg0, arg1, args)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
163
|
+
if (arg0 == __) {
|
|
164
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
165
|
+
}
|
|
166
|
+
if (arg1 == __) {
|
|
167
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
168
|
+
}
|
|
169
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
172
|
// argument resolver for curry4
|
|
173
173
|
const curry4ResolveArg0 = (
|
|
174
174
|
baseFunc, arg1, arg2, arg3,
|
|
@@ -291,13 +291,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
291
291
|
|
|
292
292
|
const objectKeys = Object.keys
|
|
293
293
|
|
|
294
|
-
const objectGetFirstKey = function (object) {
|
|
295
|
-
for (const key in object) {
|
|
296
|
-
return key
|
|
297
|
-
}
|
|
298
|
-
return undefined
|
|
299
|
-
}
|
|
300
|
-
|
|
301
294
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
302
295
|
const keysLength = keys.length
|
|
303
296
|
while (++index < keysLength) {
|
|
@@ -358,24 +351,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
358
351
|
return result
|
|
359
352
|
}
|
|
360
353
|
|
|
361
|
-
const funcConcatSync = (
|
|
362
|
-
funcA, funcB,
|
|
363
|
-
) => function pipedFunction(...args) {
|
|
364
|
-
return funcB(funcA(...args))
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
const generatorFunctionReduce = (
|
|
368
|
-
generatorFunction, reducer, result,
|
|
369
|
-
) => funcConcatSync(
|
|
370
|
-
generatorFunction,
|
|
371
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
372
|
-
|
|
373
|
-
const asyncGeneratorFunctionReduce = (
|
|
374
|
-
asyncGeneratorFunction, reducer, result,
|
|
375
|
-
) => funcConcatSync(
|
|
376
|
-
asyncGeneratorFunction,
|
|
377
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
378
|
-
|
|
379
354
|
const reducerConcat = (
|
|
380
355
|
reducerA, reducerB,
|
|
381
356
|
) => function pipedReducer(result, item) {
|
|
@@ -385,26 +360,10 @@ const reducerConcat = (
|
|
|
385
360
|
: reducerB(intermediate, item)
|
|
386
361
|
}
|
|
387
362
|
|
|
388
|
-
const genericReduce = function (
|
|
389
|
-
const collection = args[0]
|
|
363
|
+
const genericReduce = function (collection, reducer, result) {
|
|
390
364
|
if (isArray(collection)) {
|
|
391
365
|
return arrayReduce(collection, reducer, result)
|
|
392
366
|
}
|
|
393
|
-
if (typeof collection == 'function') {
|
|
394
|
-
if (isGeneratorFunction(collection)) {
|
|
395
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
396
|
-
}
|
|
397
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
398
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
399
|
-
}
|
|
400
|
-
return curryArgs3(
|
|
401
|
-
genericReduce,
|
|
402
|
-
__,
|
|
403
|
-
args.length == 1
|
|
404
|
-
? reducerConcat(reducer, collection)
|
|
405
|
-
: args.reduce(reducerConcat, reducer),
|
|
406
|
-
result)
|
|
407
|
-
}
|
|
408
367
|
if (collection == null) {
|
|
409
368
|
return result === undefined
|
|
410
369
|
? curry2(reducer, collection, __)
|
|
@@ -439,28 +398,27 @@ const genericReduce = function (args, reducer, result) {
|
|
|
439
398
|
: reducer(result, collection)
|
|
440
399
|
}
|
|
441
400
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
return genericReduce([args[0]], reducer, initialValue)
|
|
401
|
+
// _reduce(collection any, reducer function, initialValue function|any) -> Promise
|
|
402
|
+
const _reduce = function (collection, reducer, initialValue) {
|
|
403
|
+
if (typeof initialValue == 'function') {
|
|
404
|
+
const actualInitialValue = initialValue(collection)
|
|
405
|
+
return isPromise(actualInitialValue)
|
|
406
|
+
? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
407
|
+
: genericReduce(collection, reducer, actualInitialValue)
|
|
450
408
|
}
|
|
409
|
+
return isPromise(initialValue)
|
|
410
|
+
? initialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
411
|
+
: genericReduce(collection, reducer, initialValue)
|
|
412
|
+
}
|
|
451
413
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
return isPromise(result)
|
|
459
|
-
? result.then(curry3(genericReduce, args, reducer, __))
|
|
460
|
-
: genericReduce(args, reducer, result)
|
|
461
|
-
}
|
|
414
|
+
const reduce = function (...args) {
|
|
415
|
+
if (typeof args[0] == 'function') {
|
|
416
|
+
return curry3(_reduce, __, args[0], args[1])
|
|
417
|
+
}
|
|
418
|
+
if (isPromise(args[0])) {
|
|
419
|
+
return args[0].then(curry3(_reduce, __, args[1], args[2]))
|
|
462
420
|
}
|
|
463
|
-
return
|
|
421
|
+
return _reduce(args[0], args[1], args[2])
|
|
464
422
|
}
|
|
465
423
|
|
|
466
424
|
// (mapOfArrays Map<any=>Array>, key any, item any) => mapOfArrays
|
package/dist/x/groupBy.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 EmptyMap=()=>new Map,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)},
|
|
7
|
+
const EmptyMap=()=>new Map,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,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,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)},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(u){return r(u,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(u){return r(e,u,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(u){return r(e,n,u,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(u){return r(e,n,t,u,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(u){return r(e,n,t,o,u)},curry5=function(r,e,n,t,o,u){return e==__?curry5ResolveArg0(r,n,t,o,u):n==__?curry5ResolveArg1(r,e,t,o,u):t==__?curry5ResolveArg2(r,e,n,o,u):o==__?curry5ResolveArg3(r,e,n,t,u):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const u=t.length;for(;++o<u;){const u=t[o];n=e(n,r[u],u,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let u=-1;for(void 0===n&&(n=r[t[++u]]);++u<o;){const o=t[u];if(n=e(n,r[o],o,r),isPromise(n))return n.then((c=objectReduceAsync,i=e,y=__,a=t,f=u,(s=r)==__?curry5ResolveArg0(c,i,y,a,f):i==__?curry5ResolveArg1(c,s,y,a,f):y==__?curry5ResolveArg2(c,s,i,a,f):a==__?curry5ResolveArg3(c,s,i,y,f):curry5ResolveArg4(c,s,i,y,a)))}var c,s,i,y,a,f;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,u]of t)n=e(n,u,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,u]of t)if(n=e(n,u,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)},_reduce=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,t)}return isPromise(n)?n.then(curry3(genericReduce,r,e,__)):genericReduce(r,e,n)},reduce=function(...r){return"function"==typeof r[0]?curry3(_reduce,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_reduce,__,r[1],r[2])):_reduce(r[0],r[1],r[2])},group=function(r,e,n){const t=r.get(e);return null==t?r.set(e,[n]):t.push(n),r},groupByProperty=r=>function(e,n){return group(e,n[r],n)},groupByResolver=r=>function(e,n){const t=r(n);return isPromise(t)?t.then(curry3(group,e,__,n)):group(e,t,n)},groupBy=r=>{return reduce("function"==typeof r?(n=r,function(r,e){const t=n(e);return isPromise(t)?t.then(curry3(group,r,__,e)):group(r,t,e)}):(e=r,function(r,n){return group(r,n[e],n)}),EmptyMap);var e,n};export default groupBy;
|