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/all.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,10 +11,90 @@
|
|
|
11
11
|
else (root.all = all) // 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
|
+
|
|
14
30
|
const isArray = Array.isArray
|
|
15
31
|
|
|
16
32
|
const __ = Symbol.for('placeholder')
|
|
17
33
|
|
|
34
|
+
// argument resolver for curry2
|
|
35
|
+
const curry2ResolveArg0 = (
|
|
36
|
+
baseFunc, arg1,
|
|
37
|
+
) => function arg0Resolver(arg0) {
|
|
38
|
+
return baseFunc(arg0, arg1)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// argument resolver for curry2
|
|
42
|
+
const curry2ResolveArg1 = (
|
|
43
|
+
baseFunc, arg0,
|
|
44
|
+
) => function arg1Resolver(arg1) {
|
|
45
|
+
return baseFunc(arg0, arg1)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
49
|
+
return arg0 == __
|
|
50
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
51
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// argument resolver for curryArgs2
|
|
55
|
+
const curryArgs2ResolveArgs0 = (
|
|
56
|
+
baseFunc, arg1, arg2,
|
|
57
|
+
) => function args0Resolver(...args) {
|
|
58
|
+
return baseFunc(args, arg1)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// argument resolver for curryArgs2
|
|
62
|
+
const curryArgs2ResolveArgs1 = (
|
|
63
|
+
baseFunc, arg0, arg2,
|
|
64
|
+
) => function arg1Resolver(...args) {
|
|
65
|
+
return baseFunc(arg0, args)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
69
|
+
if (arg0 == __) {
|
|
70
|
+
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
71
|
+
}
|
|
72
|
+
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const functionArrayAll = function (funcs, args) {
|
|
76
|
+
const funcsLength = funcs.length,
|
|
77
|
+
result = Array(funcsLength)
|
|
78
|
+
let funcsIndex = -1, isAsync = false
|
|
79
|
+
while (++funcsIndex < funcsLength) {
|
|
80
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
81
|
+
if (isPromise(resultItem)) {
|
|
82
|
+
isAsync = true
|
|
83
|
+
}
|
|
84
|
+
result[funcsIndex] = resultItem
|
|
85
|
+
}
|
|
86
|
+
return isAsync ? promiseAll(result) : result
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const funcConcat = (
|
|
90
|
+
funcA, funcB,
|
|
91
|
+
) => function pipedFunction(...args) {
|
|
92
|
+
const intermediate = funcA(...args)
|
|
93
|
+
return isPromise(intermediate)
|
|
94
|
+
? intermediate.then(funcB)
|
|
95
|
+
: funcB(intermediate)
|
|
96
|
+
}
|
|
97
|
+
|
|
18
98
|
// argument resolver for curry3
|
|
19
99
|
const curry3ResolveArg0 = (
|
|
20
100
|
baseFunc, arg1, arg2,
|
|
@@ -46,118 +126,119 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
46
126
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
47
127
|
}
|
|
48
128
|
|
|
49
|
-
|
|
129
|
+
// argument resolver for curry4
|
|
130
|
+
const curry4ResolveArg0 = (
|
|
131
|
+
baseFunc, arg1, arg2, arg3,
|
|
132
|
+
) => function arg0Resolver(arg0) {
|
|
133
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
134
|
+
}
|
|
50
135
|
|
|
51
|
-
|
|
136
|
+
// argument resolver for curry4
|
|
137
|
+
const curry4ResolveArg1 = (
|
|
138
|
+
baseFunc, arg0, arg2, arg3,
|
|
139
|
+
) => function arg1Resolver(arg1) {
|
|
140
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// argument resolver for curry4
|
|
144
|
+
const curry4ResolveArg2 = (
|
|
145
|
+
baseFunc, arg0, arg1, arg3,
|
|
146
|
+
) => function arg2Resolver(arg2) {
|
|
147
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
148
|
+
}
|
|
52
149
|
|
|
53
|
-
|
|
150
|
+
// argument resolver for curry4
|
|
151
|
+
const curry4ResolveArg3 = (
|
|
152
|
+
baseFunc, arg0, arg1, arg2,
|
|
153
|
+
) => function arg3Resolver(arg3) {
|
|
154
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
155
|
+
}
|
|
54
156
|
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
let index = -1
|
|
59
|
-
while (++index < arrayLength) {
|
|
60
|
-
const predication = predicate(array[index])
|
|
61
|
-
if (isPromise(predication)) {
|
|
62
|
-
promises.push(predication)
|
|
63
|
-
} else if (!predication) {
|
|
64
|
-
return false
|
|
65
|
-
}
|
|
157
|
+
const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
158
|
+
if (arg0 == __) {
|
|
159
|
+
return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
|
|
66
160
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const iteratorAll = function (iterator, predicate) {
|
|
73
|
-
const promises = []
|
|
74
|
-
for (const item of iterator) {
|
|
75
|
-
const predication = predicate(item)
|
|
76
|
-
if (isPromise(predication)) {
|
|
77
|
-
promises.push(predication)
|
|
78
|
-
} else if (!predication) {
|
|
79
|
-
return false
|
|
80
|
-
}
|
|
161
|
+
if (arg1 == __) {
|
|
162
|
+
return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
|
|
163
|
+
}
|
|
164
|
+
if (arg2 == __) {
|
|
165
|
+
return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
|
|
81
166
|
}
|
|
82
|
-
return
|
|
83
|
-
? true
|
|
84
|
-
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
167
|
+
return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
|
|
85
168
|
}
|
|
86
169
|
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
return
|
|
170
|
+
const objectSet = function (object, property, value) {
|
|
171
|
+
object[property] = value
|
|
172
|
+
return object
|
|
90
173
|
}
|
|
91
174
|
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
)
|
|
97
|
-
let iteration = await asyncIterator.next()
|
|
98
|
-
while (!iteration.done) {
|
|
99
|
-
if (promisesInFlight.size >= maxConcurrency) {
|
|
100
|
-
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
101
|
-
promisesInFlight.delete(promise)
|
|
102
|
-
if (!predication) {
|
|
103
|
-
return false
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const predication = predicate(iteration.value)
|
|
108
|
-
if (isPromise(predication)) {
|
|
109
|
-
promisesInFlight.add(SelfReferencingPromise(predication))
|
|
110
|
-
} else if (!predication) {
|
|
111
|
-
return false
|
|
112
|
-
}
|
|
113
|
-
iteration = await asyncIterator.next()
|
|
175
|
+
const asyncFunctionArrayAllSeries = async function (funcs, args, result, funcsIndex) {
|
|
176
|
+
const funcsLength = funcs.length
|
|
177
|
+
while (++funcsIndex < funcsLength) {
|
|
178
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
179
|
+
result[funcsIndex] = isPromise(resultItem) ? await resultItem : resultItem
|
|
114
180
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
181
|
+
return result
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const functionArrayAllSeries = function (funcs, args) {
|
|
185
|
+
const funcsLength = funcs.length, result = []
|
|
186
|
+
let funcsIndex = -1
|
|
187
|
+
while (++funcsIndex < funcsLength) {
|
|
188
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
189
|
+
if (isPromise(resultItem)) {
|
|
190
|
+
return resultItem.then(funcConcat(
|
|
191
|
+
curry3(objectSet, result, funcsIndex, __),
|
|
192
|
+
curry4(asyncFunctionArrayAllSeries, funcs, args, __, funcsIndex)))
|
|
120
193
|
}
|
|
194
|
+
result[funcsIndex] = resultItem
|
|
121
195
|
}
|
|
122
|
-
return
|
|
196
|
+
return result
|
|
123
197
|
}
|
|
124
198
|
|
|
125
|
-
const
|
|
199
|
+
const always = value => function getter() { return value }
|
|
126
200
|
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
curry3(
|
|
133
|
-
|
|
201
|
+
const functionObjectAll = function (funcs, args) {
|
|
202
|
+
const result = {}, promises = []
|
|
203
|
+
for (const key in funcs) {
|
|
204
|
+
const resultItem = funcs[key](...args)
|
|
205
|
+
if (isPromise(resultItem)) {
|
|
206
|
+
promises.push(resultItem.then(curry3(objectSet, result, key, __)))
|
|
207
|
+
} else {
|
|
208
|
+
result[key] = resultItem
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return promises.length == 0 ? result : promiseAll(promises).then(always(result))
|
|
134
212
|
}
|
|
135
213
|
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return arrayAll(value, predicate)
|
|
143
|
-
}
|
|
144
|
-
if (value == null) {
|
|
145
|
-
return predicate(value)
|
|
214
|
+
const all = function (...args) {
|
|
215
|
+
const funcs = args.pop()
|
|
216
|
+
if (args.length == 0) {
|
|
217
|
+
return isArray(funcs)
|
|
218
|
+
? curryArgs2(functionArrayAll, funcs, __)
|
|
219
|
+
: curryArgs2(functionObjectAll, funcs, __)
|
|
146
220
|
}
|
|
147
221
|
|
|
148
|
-
if (
|
|
149
|
-
return
|
|
222
|
+
if (areAnyValuesPromises(args)) {
|
|
223
|
+
return isArray(funcs)
|
|
224
|
+
? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
|
|
225
|
+
: promiseAll(args).then(curry2(functionObjectAll, funcs, __))
|
|
150
226
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
227
|
+
|
|
228
|
+
return isArray(funcs)
|
|
229
|
+
? functionArrayAll(funcs, args)
|
|
230
|
+
: functionObjectAll(funcs, args)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
all.series = function allSeries(...args) {
|
|
234
|
+
const funcs = args.pop()
|
|
235
|
+
if (args.length == 0) {
|
|
236
|
+
return curryArgs2(functionArrayAllSeries, funcs, __)
|
|
156
237
|
}
|
|
157
|
-
if (
|
|
158
|
-
return
|
|
238
|
+
if (areAnyValuesPromises(args)) {
|
|
239
|
+
return promiseAll(args).then(curry2(functionArrayAllSeries, funcs, __))
|
|
159
240
|
}
|
|
160
|
-
return
|
|
241
|
+
return functionArrayAllSeries(funcs, args)
|
|
161
242
|
}
|
|
162
243
|
|
|
163
244
|
return all
|
package/dist/all.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(
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.all=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const r=t.length;let o=-1;for(;++o<r;){const r=t[o];if(n(r))return!0}return!1},r=Promise.all.bind(Promise),o=Array.isArray,e=Symbol.for("placeholder"),u=function(n,t,r){return t==e?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)},c=function(n,t,r){return t==e?((n,t,r)=>function(...r){return n(r,t)})(n,r):((n,t,r)=>function(...r){return n(t,r)})(n,t)},i=function(t,o){const e=t.length,u=Array(e);let c=-1,i=!1;for(;++c<e;){const r=t[c](...o);n(r)&&(i=!0),u[c]=r}return i?r(u):u},f=(t,r)=>function(...o){const e=t(...o);return n(e)?e.then(r):r(e)},s=function(n,t,r,o){return t==e?((n,t,r)=>function(o){return n(o,t,r)})(n,r,o):r==e?((n,t,r)=>function(o){return n(t,o,r)})(n,t,o):((n,t,r)=>function(o){return n(t,r,o)})(n,t,r)},l=function(n,t,r){return n[t]=r,n},h=async function(t,r,o,e){const u=t.length;for(;++e<u;){const u=t[e](...r);o[e]=n(u)?await u:u}return o},a=function(t,r){const o=t.length,u=[];let c=-1;for(;++c<o;){const o=t[c](...r);if(n(o))return o.then(f(s(l,u,c,e),(i=h,p=r,g=e,y=c,(a=t)==e?((n,t,r,o)=>function(e){return n(e,t,r,o)})(i,p,g,y):p==e?((n,t,r,o)=>function(e){return n(t,e,r,o)})(i,a,g,y):g==e?((n,t,r,o)=>function(e){return n(t,r,e,o)})(i,a,p,y):((n,t,r,o)=>function(e){return n(t,r,o,e)})(i,a,p,g))));u[c]=o}var i,a,p,g,y;return u},p=function(t,o){const u={},c=[];for(const r in t){const i=t[r](...o);n(i)?c.push(i.then(s(l,u,r,e))):u[r]=i}return 0==c.length?u:r(c).then((i=u,function(){return i}));var i},g=function(...n){const f=n.pop();return 0==n.length?o(f)?c(i,f,e):c(p,f,e):t(n)?o(f)?r(n).then(u(i,f,e)):r(n).then(u(p,f,e)):o(f)?i(f,n):p(f,n)};return g.series=function(...n){const o=n.pop();return 0==n.length?c(a,o,e):t(n)?r(n).then(u(a,o,e)):a(o,n)},g}());
|
package/dist/all.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 isArray=Array.isArray,__=Symbol.for("placeholder"),
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},promiseAll=Promise.all.bind(Promise),isArray=Array.isArray,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,n)=>function(e){return r(e,n)},curry2ResolveArg1=(r,n)=>function(e){return r(n,e)},curry2=function(r,n,e){return n==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,n)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},functionArrayAll=function(r,n){const e=r.length,t=Array(e);let o=-1,u=!1;for(;++o<e;){const e=r[o](...n);isPromise(e)&&(u=!0),t[o]=e}return u?promiseAll(t):t},funcConcat=(r,n)=>function(...e){const t=r(...e);return isPromise(t)?t.then(n):n(t)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curry4ResolveArg0=(r,n,e,t)=>function(o){return r(o,n,e,t)},curry4ResolveArg1=(r,n,e,t)=>function(o){return r(n,o,e,t)},curry4ResolveArg2=(r,n,e,t)=>function(o){return r(n,e,o,t)},curry4ResolveArg3=(r,n,e,t)=>function(o){return r(n,e,t,o)},curry4=function(r,n,e,t,o){return n==__?curry4ResolveArg0(r,e,t,o):e==__?curry4ResolveArg1(r,n,t,o):t==__?curry4ResolveArg2(r,n,e,o):curry4ResolveArg3(r,n,e,t)},objectSet=function(r,n,e){return r[n]=e,r},asyncFunctionArrayAllSeries=async function(r,n,e,t){const o=r.length;for(;++t<o;){const o=r[t](...n);e[t]=isPromise(o)?await o:o}return e},functionArrayAllSeries=function(r,n){const e=r.length,t=[];let o=-1;for(;++o<e;){const e=r[o](...n);if(isPromise(e))return e.then(funcConcat(curry3(objectSet,t,o,__),(u=asyncFunctionArrayAllSeries,s=n,l=__,i=o,(c=r)==__?curry4ResolveArg0(u,s,l,i):s==__?curry4ResolveArg1(u,c,l,i):l==__?curry4ResolveArg2(u,c,s,i):curry4ResolveArg3(u,c,s,l))));t[o]=e}var u,c,s,l,i;return t},always=r=>function(){return r},functionObjectAll=function(r,n){const e={},t=[];for(const o in r){const u=r[o](...n);isPromise(u)?t.push(u.then(curry3(objectSet,e,o,__))):e[o]=u}return 0==t.length?e:promiseAll(t).then((o=e,function(){return o}));var o},all=function(...r){const n=r.pop();return 0==r.length?isArray(n)?curryArgs2(functionArrayAll,n,__):curryArgs2(functionObjectAll,n,__):areAnyValuesPromises(r)?isArray(n)?promiseAll(r).then(curry2(functionArrayAll,n,__)):promiseAll(r).then(curry2(functionObjectAll,n,__)):isArray(n)?functionArrayAll(n,r):functionObjectAll(n,r)};all.series=function(...r){const n=r.pop();return 0==r.length?curryArgs2(functionArrayAllSeries,n,__):areAnyValuesPromises(r)?promiseAll(r).then(curry2(functionArrayAllSeries,n,__)):functionArrayAllSeries(n,r)};export default all;
|
package/dist/all.mjs
CHANGED
|
@@ -1,14 +1,94 @@
|
|
|
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
|
+
|
|
8
24
|
const isArray = Array.isArray
|
|
9
25
|
|
|
10
26
|
const __ = Symbol.for('placeholder')
|
|
11
27
|
|
|
28
|
+
// argument resolver for curry2
|
|
29
|
+
const curry2ResolveArg0 = (
|
|
30
|
+
baseFunc, arg1,
|
|
31
|
+
) => function arg0Resolver(arg0) {
|
|
32
|
+
return baseFunc(arg0, arg1)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// argument resolver for curry2
|
|
36
|
+
const curry2ResolveArg1 = (
|
|
37
|
+
baseFunc, arg0,
|
|
38
|
+
) => function arg1Resolver(arg1) {
|
|
39
|
+
return baseFunc(arg0, arg1)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
43
|
+
return arg0 == __
|
|
44
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
45
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// argument resolver for curryArgs2
|
|
49
|
+
const curryArgs2ResolveArgs0 = (
|
|
50
|
+
baseFunc, arg1, arg2,
|
|
51
|
+
) => function args0Resolver(...args) {
|
|
52
|
+
return baseFunc(args, arg1)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// argument resolver for curryArgs2
|
|
56
|
+
const curryArgs2ResolveArgs1 = (
|
|
57
|
+
baseFunc, arg0, arg2,
|
|
58
|
+
) => function arg1Resolver(...args) {
|
|
59
|
+
return baseFunc(arg0, args)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
63
|
+
if (arg0 == __) {
|
|
64
|
+
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
65
|
+
}
|
|
66
|
+
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const functionArrayAll = function (funcs, args) {
|
|
70
|
+
const funcsLength = funcs.length,
|
|
71
|
+
result = Array(funcsLength)
|
|
72
|
+
let funcsIndex = -1, isAsync = false
|
|
73
|
+
while (++funcsIndex < funcsLength) {
|
|
74
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
75
|
+
if (isPromise(resultItem)) {
|
|
76
|
+
isAsync = true
|
|
77
|
+
}
|
|
78
|
+
result[funcsIndex] = resultItem
|
|
79
|
+
}
|
|
80
|
+
return isAsync ? promiseAll(result) : result
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const funcConcat = (
|
|
84
|
+
funcA, funcB,
|
|
85
|
+
) => function pipedFunction(...args) {
|
|
86
|
+
const intermediate = funcA(...args)
|
|
87
|
+
return isPromise(intermediate)
|
|
88
|
+
? intermediate.then(funcB)
|
|
89
|
+
: funcB(intermediate)
|
|
90
|
+
}
|
|
91
|
+
|
|
12
92
|
// argument resolver for curry3
|
|
13
93
|
const curry3ResolveArg0 = (
|
|
14
94
|
baseFunc, arg1, arg2,
|
|
@@ -40,118 +120,119 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
40
120
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
41
121
|
}
|
|
42
122
|
|
|
43
|
-
|
|
123
|
+
// argument resolver for curry4
|
|
124
|
+
const curry4ResolveArg0 = (
|
|
125
|
+
baseFunc, arg1, arg2, arg3,
|
|
126
|
+
) => function arg0Resolver(arg0) {
|
|
127
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
128
|
+
}
|
|
44
129
|
|
|
45
|
-
|
|
130
|
+
// argument resolver for curry4
|
|
131
|
+
const curry4ResolveArg1 = (
|
|
132
|
+
baseFunc, arg0, arg2, arg3,
|
|
133
|
+
) => function arg1Resolver(arg1) {
|
|
134
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// argument resolver for curry4
|
|
138
|
+
const curry4ResolveArg2 = (
|
|
139
|
+
baseFunc, arg0, arg1, arg3,
|
|
140
|
+
) => function arg2Resolver(arg2) {
|
|
141
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
142
|
+
}
|
|
46
143
|
|
|
47
|
-
|
|
144
|
+
// argument resolver for curry4
|
|
145
|
+
const curry4ResolveArg3 = (
|
|
146
|
+
baseFunc, arg0, arg1, arg2,
|
|
147
|
+
) => function arg3Resolver(arg3) {
|
|
148
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
149
|
+
}
|
|
48
150
|
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
let index = -1
|
|
53
|
-
while (++index < arrayLength) {
|
|
54
|
-
const predication = predicate(array[index])
|
|
55
|
-
if (isPromise(predication)) {
|
|
56
|
-
promises.push(predication)
|
|
57
|
-
} else if (!predication) {
|
|
58
|
-
return false
|
|
59
|
-
}
|
|
151
|
+
const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
152
|
+
if (arg0 == __) {
|
|
153
|
+
return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
|
|
60
154
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
const iteratorAll = function (iterator, predicate) {
|
|
67
|
-
const promises = []
|
|
68
|
-
for (const item of iterator) {
|
|
69
|
-
const predication = predicate(item)
|
|
70
|
-
if (isPromise(predication)) {
|
|
71
|
-
promises.push(predication)
|
|
72
|
-
} else if (!predication) {
|
|
73
|
-
return false
|
|
74
|
-
}
|
|
155
|
+
if (arg1 == __) {
|
|
156
|
+
return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
|
|
157
|
+
}
|
|
158
|
+
if (arg2 == __) {
|
|
159
|
+
return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
|
|
75
160
|
}
|
|
76
|
-
return
|
|
77
|
-
? true
|
|
78
|
-
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
161
|
+
return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
|
|
79
162
|
}
|
|
80
163
|
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
return
|
|
164
|
+
const objectSet = function (object, property, value) {
|
|
165
|
+
object[property] = value
|
|
166
|
+
return object
|
|
84
167
|
}
|
|
85
168
|
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
)
|
|
91
|
-
let iteration = await asyncIterator.next()
|
|
92
|
-
while (!iteration.done) {
|
|
93
|
-
if (promisesInFlight.size >= maxConcurrency) {
|
|
94
|
-
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
95
|
-
promisesInFlight.delete(promise)
|
|
96
|
-
if (!predication) {
|
|
97
|
-
return false
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
const predication = predicate(iteration.value)
|
|
102
|
-
if (isPromise(predication)) {
|
|
103
|
-
promisesInFlight.add(SelfReferencingPromise(predication))
|
|
104
|
-
} else if (!predication) {
|
|
105
|
-
return false
|
|
106
|
-
}
|
|
107
|
-
iteration = await asyncIterator.next()
|
|
169
|
+
const asyncFunctionArrayAllSeries = async function (funcs, args, result, funcsIndex) {
|
|
170
|
+
const funcsLength = funcs.length
|
|
171
|
+
while (++funcsIndex < funcsLength) {
|
|
172
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
173
|
+
result[funcsIndex] = isPromise(resultItem) ? await resultItem : resultItem
|
|
108
174
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
175
|
+
return result
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const functionArrayAllSeries = function (funcs, args) {
|
|
179
|
+
const funcsLength = funcs.length, result = []
|
|
180
|
+
let funcsIndex = -1
|
|
181
|
+
while (++funcsIndex < funcsLength) {
|
|
182
|
+
const resultItem = funcs[funcsIndex](...args)
|
|
183
|
+
if (isPromise(resultItem)) {
|
|
184
|
+
return resultItem.then(funcConcat(
|
|
185
|
+
curry3(objectSet, result, funcsIndex, __),
|
|
186
|
+
curry4(asyncFunctionArrayAllSeries, funcs, args, __, funcsIndex)))
|
|
114
187
|
}
|
|
188
|
+
result[funcsIndex] = resultItem
|
|
115
189
|
}
|
|
116
|
-
return
|
|
190
|
+
return result
|
|
117
191
|
}
|
|
118
192
|
|
|
119
|
-
const
|
|
193
|
+
const always = value => function getter() { return value }
|
|
120
194
|
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
curry3(
|
|
127
|
-
|
|
195
|
+
const functionObjectAll = function (funcs, args) {
|
|
196
|
+
const result = {}, promises = []
|
|
197
|
+
for (const key in funcs) {
|
|
198
|
+
const resultItem = funcs[key](...args)
|
|
199
|
+
if (isPromise(resultItem)) {
|
|
200
|
+
promises.push(resultItem.then(curry3(objectSet, result, key, __)))
|
|
201
|
+
} else {
|
|
202
|
+
result[key] = resultItem
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return promises.length == 0 ? result : promiseAll(promises).then(always(result))
|
|
128
206
|
}
|
|
129
207
|
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return arrayAll(value, predicate)
|
|
137
|
-
}
|
|
138
|
-
if (value == null) {
|
|
139
|
-
return predicate(value)
|
|
208
|
+
const all = function (...args) {
|
|
209
|
+
const funcs = args.pop()
|
|
210
|
+
if (args.length == 0) {
|
|
211
|
+
return isArray(funcs)
|
|
212
|
+
? curryArgs2(functionArrayAll, funcs, __)
|
|
213
|
+
: curryArgs2(functionObjectAll, funcs, __)
|
|
140
214
|
}
|
|
141
215
|
|
|
142
|
-
if (
|
|
143
|
-
return
|
|
216
|
+
if (areAnyValuesPromises(args)) {
|
|
217
|
+
return isArray(funcs)
|
|
218
|
+
? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
|
|
219
|
+
: promiseAll(args).then(curry2(functionObjectAll, funcs, __))
|
|
144
220
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
221
|
+
|
|
222
|
+
return isArray(funcs)
|
|
223
|
+
? functionArrayAll(funcs, args)
|
|
224
|
+
: functionObjectAll(funcs, args)
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
all.series = function allSeries(...args) {
|
|
228
|
+
const funcs = args.pop()
|
|
229
|
+
if (args.length == 0) {
|
|
230
|
+
return curryArgs2(functionArrayAllSeries, funcs, __)
|
|
150
231
|
}
|
|
151
|
-
if (
|
|
152
|
-
return
|
|
232
|
+
if (areAnyValuesPromises(args)) {
|
|
233
|
+
return promiseAll(args).then(curry2(functionArrayAllSeries, funcs, __))
|
|
153
234
|
}
|
|
154
|
-
return
|
|
235
|
+
return functionArrayAllSeries(funcs, args)
|
|
155
236
|
}
|
|
156
237
|
|
|
157
238
|
export default all
|