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
|
@@ -1,10 +1,34 @@
|
|
|
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 __ = Symbol.for('placeholder')
|
|
11
|
+
|
|
12
|
+
// argument resolver for curry2
|
|
13
|
+
const curry2ResolveArg0 = (
|
|
14
|
+
baseFunc, arg1,
|
|
15
|
+
) => function arg0Resolver(arg0) {
|
|
16
|
+
return baseFunc(arg0, arg1)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// argument resolver for curry2
|
|
20
|
+
const curry2ResolveArg1 = (
|
|
21
|
+
baseFunc, arg0,
|
|
22
|
+
) => function arg1Resolver(arg1) {
|
|
23
|
+
return baseFunc(arg0, arg1)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
27
|
+
return arg0 == __
|
|
28
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
29
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
30
|
+
}
|
|
31
|
+
|
|
8
32
|
const isArray = Array.isArray
|
|
9
33
|
|
|
10
34
|
const objectValues = Object.values
|
|
@@ -14,11 +38,9 @@ const SelfReferencingPromise = function (basePromise) {
|
|
|
14
38
|
return promise
|
|
15
39
|
}
|
|
16
40
|
|
|
17
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
18
|
-
|
|
19
41
|
const promiseRace = Promise.race.bind(Promise)
|
|
20
42
|
|
|
21
|
-
const
|
|
43
|
+
const asyncArraySome = async function (
|
|
22
44
|
array, predicate, index, promisesInFlight,
|
|
23
45
|
) {
|
|
24
46
|
const length = array.length
|
|
@@ -41,13 +63,13 @@ const asyncArrayAny = async function (
|
|
|
41
63
|
return false
|
|
42
64
|
}
|
|
43
65
|
|
|
44
|
-
const
|
|
66
|
+
const arraySome = function (array, predicate) {
|
|
45
67
|
const length = array.length
|
|
46
68
|
let index = -1
|
|
47
69
|
while (++index < length) {
|
|
48
70
|
const predication = predicate(array[index])
|
|
49
71
|
if (isPromise(predication)) {
|
|
50
|
-
return
|
|
72
|
+
return asyncArraySome(
|
|
51
73
|
array, predicate, index, new Set([SelfReferencingPromise(predication)]))
|
|
52
74
|
}
|
|
53
75
|
if (predication) {
|
|
@@ -57,7 +79,7 @@ const arrayAny = function (array, predicate) {
|
|
|
57
79
|
return false
|
|
58
80
|
}
|
|
59
81
|
|
|
60
|
-
const
|
|
82
|
+
const asyncIteratorSome = async function (
|
|
61
83
|
iterator, predicate, promisesInFlight, maxConcurrency = 20,
|
|
62
84
|
) {
|
|
63
85
|
let iteration = iterator.next()
|
|
@@ -94,11 +116,11 @@ const asyncIteratorAny = async function (
|
|
|
94
116
|
return false
|
|
95
117
|
}
|
|
96
118
|
|
|
97
|
-
const
|
|
119
|
+
const iteratorSome = function (iterator, predicate) {
|
|
98
120
|
for (const item of iterator) {
|
|
99
121
|
const predication = predicate(item)
|
|
100
122
|
if (isPromise(predication)) {
|
|
101
|
-
return
|
|
123
|
+
return asyncIteratorSome(
|
|
102
124
|
iterator, predicate, new Set([SelfReferencingPromise(predication)]))
|
|
103
125
|
}
|
|
104
126
|
if (predication) {
|
|
@@ -112,29 +134,7 @@ const reducerAnySync = predicate => function anyReducer(result, item) {
|
|
|
112
134
|
return result ? true : predicate(item)
|
|
113
135
|
}
|
|
114
136
|
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
// argument resolver for curry2
|
|
118
|
-
const curry2ResolveArg0 = (
|
|
119
|
-
baseFunc, arg1,
|
|
120
|
-
) => function arg0Resolver(arg0) {
|
|
121
|
-
return baseFunc(arg0, arg1)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// argument resolver for curry2
|
|
125
|
-
const curry2ResolveArg1 = (
|
|
126
|
-
baseFunc, arg0,
|
|
127
|
-
) => function arg1Resolver(arg1) {
|
|
128
|
-
return baseFunc(arg0, arg1)
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
const curry2 = function (baseFunc, arg0, arg1) {
|
|
132
|
-
return arg0 == __
|
|
133
|
-
? curry2ResolveArg0(baseFunc, arg1)
|
|
134
|
-
: curry2ResolveArg1(baseFunc, arg0)
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const reducerAny = predicate => function anyReducer(result, item) {
|
|
137
|
+
const reducerSome = predicate => function anyReducer(result, item) {
|
|
138
138
|
return result === true ? result
|
|
139
139
|
: isPromise(result) ? result.then(curry2(reducerAnySync(predicate), __, item))
|
|
140
140
|
: result ? true : predicate(item)
|
|
@@ -144,26 +144,43 @@ const symbolIterator = Symbol.iterator
|
|
|
144
144
|
|
|
145
145
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
// _some(collection Array|Iterable|AsyncIterable|{ reduce: function }|Object, predicate function) -> Promise|boolean
|
|
148
|
+
const _some = function (collection, predicate) {
|
|
149
|
+
if (isArray(collection)) {
|
|
150
|
+
return arraySome(collection, predicate)
|
|
150
151
|
}
|
|
151
|
-
if (
|
|
152
|
-
return predicate(
|
|
152
|
+
if (collection == null) {
|
|
153
|
+
return predicate(collection)
|
|
153
154
|
}
|
|
154
|
-
if (typeof
|
|
155
|
-
return
|
|
155
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
156
|
+
return iteratorSome(collection[symbolIterator](), predicate)
|
|
156
157
|
}
|
|
157
|
-
if (typeof
|
|
158
|
-
return
|
|
158
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
159
|
+
return asyncIteratorSome(
|
|
160
|
+
collection[symbolAsyncIterator](), predicate, new Set()
|
|
161
|
+
)
|
|
159
162
|
}
|
|
160
|
-
if (typeof
|
|
161
|
-
return
|
|
163
|
+
if (typeof collection.reduce == 'function') {
|
|
164
|
+
return collection.reduce(reducerSome(predicate), false)
|
|
162
165
|
}
|
|
163
|
-
if (
|
|
164
|
-
return
|
|
166
|
+
if (collection.constructor == Object) {
|
|
167
|
+
return arraySome(objectValues(collection), predicate)
|
|
165
168
|
}
|
|
166
|
-
return predicate(
|
|
169
|
+
return predicate(collection)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const some = function (...args) {
|
|
173
|
+
const predicate = args.pop()
|
|
174
|
+
if (args.length == 0) {
|
|
175
|
+
return curry2(_some, __, predicate)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const collection = args[0]
|
|
179
|
+
if (isPromise(collection)) {
|
|
180
|
+
return collection.then(curry2(_some, __, predicate))
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return _some(collection, predicate)
|
|
167
184
|
}
|
|
168
185
|
|
|
169
|
-
export default
|
|
186
|
+
export default some
|
package/dist/switchCase.es.js
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
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 promiseAll = Promise.all.bind(Promise)
|
|
9
|
+
|
|
8
10
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
11
|
|
|
12
|
+
const areAnyValuesPromises = function (values) {
|
|
13
|
+
const length = values.length
|
|
14
|
+
let index = -1
|
|
15
|
+
while (++index < length) {
|
|
16
|
+
const value = values[index]
|
|
17
|
+
if (isPromise(value)) {
|
|
18
|
+
return true
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false
|
|
22
|
+
}
|
|
23
|
+
|
|
10
24
|
const thunkConditional = (
|
|
11
25
|
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
12
26
|
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
@@ -134,13 +148,49 @@ const nonfunctionsConditional = function (array, index) {
|
|
|
134
148
|
return array[index]
|
|
135
149
|
}
|
|
136
150
|
|
|
137
|
-
|
|
151
|
+
// argument resolver for curryArgs3
|
|
152
|
+
const curryArgs3ResolveArgs0 = (
|
|
153
|
+
baseFunc, arg1, arg2,
|
|
154
|
+
) => function args0Resolver(...args) {
|
|
155
|
+
return baseFunc(args, arg1, arg2)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// argument resolver for curryArgs3
|
|
159
|
+
const curryArgs3ResolveArgs1 = (
|
|
160
|
+
baseFunc, arg0, arg2,
|
|
161
|
+
) => function arg1Resolver(...args) {
|
|
162
|
+
return baseFunc(arg0, args, arg2)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// argument resolver for curryArgs3
|
|
166
|
+
const curryArgs3ResolveArgs2 = (
|
|
167
|
+
baseFunc, arg0, arg1,
|
|
168
|
+
) => function arg2Resolver(...args) {
|
|
169
|
+
return baseFunc(arg0, arg1, args)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
173
|
+
if (arg0 == __) {
|
|
174
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
175
|
+
}
|
|
176
|
+
if (arg1 == __) {
|
|
177
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
178
|
+
}
|
|
179
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const switchCase = (...args) => {
|
|
183
|
+
const values = args.pop()
|
|
138
184
|
if (areAllValuesNonfunctions(values)) {
|
|
139
185
|
return nonfunctionsConditional(values, -2)
|
|
140
186
|
}
|
|
141
|
-
|
|
142
|
-
return arrayConditional
|
|
187
|
+
if (args.length == 0) {
|
|
188
|
+
return curryArgs3(arrayConditional, values, __, -2)
|
|
189
|
+
}
|
|
190
|
+
if (areAnyValuesPromises(args)) {
|
|
191
|
+
return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
|
|
143
192
|
}
|
|
193
|
+
return arrayConditional(values, args, -2)
|
|
144
194
|
}
|
|
145
195
|
|
|
146
196
|
export default switchCase
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isPromise=
|
|
7
|
+
const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let o=-1;for(;++o<n;){const n=r[o];if(isPromise(n))return!0}return!1},thunkConditional=(r,n,o)=>r?n():o(),thunkifyArgs=(r,n)=>function(){return r(...n)},thunkify3=(r,n,o,t)=>function(){return r(n,o,t)},__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},always=r=>function(){return r},arrayConditional=function(r,n,o){const t=r.length-1;for(;(o+=2)<t;){const t=r[o],e=r[o+1],u="function"==typeof t?t(...n):t;if(isPromise(u))return u.then(curry3(thunkConditional,__,"function"==typeof e?thunkifyArgs(e,n):always(e),thunkify3(arrayConditional,r,n,o)));if(u)return"function"==typeof e?e(...n):e}if(o==r.length)return;const e=r[t];return"function"==typeof e?e(...n):e},areAllValuesNonfunctions=function(r){const n=r.length;let o=-1;for(;++o<n;)if("function"==typeof r[o])return!1;return!0},thunkify2=(r,n,o)=>function(){return r(n,o)},nonfunctionsConditional=function(r,n){const o=r.length,t=o-1;for(;(n+=2)<t;){const o=r[n],t=r[n+1];if(isPromise(o))return o.then(curry3(thunkConditional,__,always(t),thunkify2(nonfunctionsConditional,r,n)));if(o)return t}if(n!=o)return r[n]},curryArgs3ResolveArgs0=(r,n,o)=>function(...t){return r(t,n,o)},curryArgs3ResolveArgs1=(r,n,o)=>function(...t){return r(n,t,o)},curryArgs3ResolveArgs2=(r,n,o)=>function(...t){return r(n,o,t)},curryArgs3=function(r,n,o,t){return n==__?curryArgs3ResolveArgs0(r,o,t):o==__?curryArgs3ResolveArgs1(r,n,t):curryArgs3ResolveArgs2(r,n,o)},switchCase=(...r)=>{const n=r.pop();return areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):0==r.length?(o=arrayConditional,e=__,u=-2,(t=n)==__?curryArgs3ResolveArgs0(o,e,u):e==__?curryArgs3ResolveArgs1(o,t,u):curryArgs3ResolveArgs2(o,t,e)):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,n,__,-2)):arrayConditional(n,r,-2);var o,t,e,u};export default switchCase;
|
package/dist/switchCase.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,8 +11,22 @@
|
|
|
11
11
|
else (root.switchCase = switchCase) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
15
|
+
|
|
14
16
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
17
|
|
|
18
|
+
const areAnyValuesPromises = function (values) {
|
|
19
|
+
const length = values.length
|
|
20
|
+
let index = -1
|
|
21
|
+
while (++index < length) {
|
|
22
|
+
const value = values[index]
|
|
23
|
+
if (isPromise(value)) {
|
|
24
|
+
return true
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return false
|
|
28
|
+
}
|
|
29
|
+
|
|
16
30
|
const thunkConditional = (
|
|
17
31
|
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
18
32
|
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
@@ -140,13 +154,49 @@ const nonfunctionsConditional = function (array, index) {
|
|
|
140
154
|
return array[index]
|
|
141
155
|
}
|
|
142
156
|
|
|
143
|
-
|
|
157
|
+
// argument resolver for curryArgs3
|
|
158
|
+
const curryArgs3ResolveArgs0 = (
|
|
159
|
+
baseFunc, arg1, arg2,
|
|
160
|
+
) => function args0Resolver(...args) {
|
|
161
|
+
return baseFunc(args, arg1, arg2)
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// argument resolver for curryArgs3
|
|
165
|
+
const curryArgs3ResolveArgs1 = (
|
|
166
|
+
baseFunc, arg0, arg2,
|
|
167
|
+
) => function arg1Resolver(...args) {
|
|
168
|
+
return baseFunc(arg0, args, arg2)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// argument resolver for curryArgs3
|
|
172
|
+
const curryArgs3ResolveArgs2 = (
|
|
173
|
+
baseFunc, arg0, arg1,
|
|
174
|
+
) => function arg2Resolver(...args) {
|
|
175
|
+
return baseFunc(arg0, arg1, args)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
179
|
+
if (arg0 == __) {
|
|
180
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
181
|
+
}
|
|
182
|
+
if (arg1 == __) {
|
|
183
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
184
|
+
}
|
|
185
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const switchCase = (...args) => {
|
|
189
|
+
const values = args.pop()
|
|
144
190
|
if (areAllValuesNonfunctions(values)) {
|
|
145
191
|
return nonfunctionsConditional(values, -2)
|
|
146
192
|
}
|
|
147
|
-
|
|
148
|
-
return arrayConditional
|
|
193
|
+
if (args.length == 0) {
|
|
194
|
+
return curryArgs3(arrayConditional, values, __, -2)
|
|
195
|
+
}
|
|
196
|
+
if (areAnyValuesPromises(args)) {
|
|
197
|
+
return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
|
|
149
198
|
}
|
|
199
|
+
return arrayConditional(values, args, -2)
|
|
150
200
|
}
|
|
151
201
|
|
|
152
202
|
return switchCase
|
package/dist/switchCase.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(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.switchCase=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.switchCase=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Promise.all.bind(Promise),t=n=>null!=n&&"function"==typeof n.then,e=(n,t,e)=>n?t():e(),o=(n,t)=>function(){return n(...t)},r=(n,t,e,o)=>function(){return n(t,e,o)},u=Symbol.for("placeholder"),f=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},i=n=>function(){return n},c=function(n,l,s){const h=n.length-1;for(;(s+=2)<h;){const h=n[s],p=n[s+1],y="function"==typeof h?h(...l):h;if(t(y))return y.then(f(e,u,"function"==typeof p?o(p,l):i(p),r(c,n,l,s)));if(y)return"function"==typeof p?p(...l):p}if(s==n.length)return;const p=n[h];return"function"==typeof p?p(...l):p},l=(n,t,e)=>function(){return n(t,e)},s=function(n,o){const r=n.length,c=r-1;for(;(o+=2)<c;){const r=n[o],c=n[o+1];if(t(r))return r.then(f(e,u,i(c),l(s,n,o)));if(r)return c}if(o!=r)return n[o]};return(...e)=>{const o=e.pop();return function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0}(o)?s(o,-2):0==e.length?(r=c,l=u,h=-2,(i=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,l,h):l==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,i,h):((n,t,e)=>function(...o){return n(t,e,o)})(r,i,l)):function(n){const e=n.length;let o=-1;for(;++o<e;){const e=n[o];if(t(e))return!0}return!1}(e)?n(e).then(f(c,o,u,-2)):c(o,e,-2);var r,i,l,h}}());
|
package/dist/switchCase.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 isPromise=
|
|
7
|
+
const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let o=-1;for(;++o<n;){const n=r[o];if(isPromise(n))return!0}return!1},thunkConditional=(r,n,o)=>r?n():o(),thunkifyArgs=(r,n)=>function(){return r(...n)},thunkify3=(r,n,o,t)=>function(){return r(n,o,t)},__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},always=r=>function(){return r},arrayConditional=function(r,n,o){const t=r.length-1;for(;(o+=2)<t;){const t=r[o],e=r[o+1],u="function"==typeof t?t(...n):t;if(isPromise(u))return u.then(curry3(thunkConditional,__,"function"==typeof e?thunkifyArgs(e,n):always(e),thunkify3(arrayConditional,r,n,o)));if(u)return"function"==typeof e?e(...n):e}if(o==r.length)return;const e=r[t];return"function"==typeof e?e(...n):e},areAllValuesNonfunctions=function(r){const n=r.length;let o=-1;for(;++o<n;)if("function"==typeof r[o])return!1;return!0},thunkify2=(r,n,o)=>function(){return r(n,o)},nonfunctionsConditional=function(r,n){const o=r.length,t=o-1;for(;(n+=2)<t;){const o=r[n],t=r[n+1];if(isPromise(o))return o.then(curry3(thunkConditional,__,always(t),thunkify2(nonfunctionsConditional,r,n)));if(o)return t}if(n!=o)return r[n]},curryArgs3ResolveArgs0=(r,n,o)=>function(...t){return r(t,n,o)},curryArgs3ResolveArgs1=(r,n,o)=>function(...t){return r(n,t,o)},curryArgs3ResolveArgs2=(r,n,o)=>function(...t){return r(n,o,t)},curryArgs3=function(r,n,o,t){return n==__?curryArgs3ResolveArgs0(r,o,t):o==__?curryArgs3ResolveArgs1(r,n,t):curryArgs3ResolveArgs2(r,n,o)},switchCase=(...r)=>{const n=r.pop();return areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):0==r.length?(o=arrayConditional,e=__,u=-2,(t=n)==__?curryArgs3ResolveArgs0(o,e,u):e==__?curryArgs3ResolveArgs1(o,t,u):curryArgs3ResolveArgs2(o,t,e)):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,n,__,-2)):arrayConditional(n,r,-2);var o,t,e,u};export default switchCase;
|
package/dist/switchCase.mjs
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
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 promiseAll = Promise.all.bind(Promise)
|
|
9
|
+
|
|
8
10
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
11
|
|
|
12
|
+
const areAnyValuesPromises = function (values) {
|
|
13
|
+
const length = values.length
|
|
14
|
+
let index = -1
|
|
15
|
+
while (++index < length) {
|
|
16
|
+
const value = values[index]
|
|
17
|
+
if (isPromise(value)) {
|
|
18
|
+
return true
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return false
|
|
22
|
+
}
|
|
23
|
+
|
|
10
24
|
const thunkConditional = (
|
|
11
25
|
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
12
26
|
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
@@ -134,13 +148,49 @@ const nonfunctionsConditional = function (array, index) {
|
|
|
134
148
|
return array[index]
|
|
135
149
|
}
|
|
136
150
|
|
|
137
|
-
|
|
151
|
+
// argument resolver for curryArgs3
|
|
152
|
+
const curryArgs3ResolveArgs0 = (
|
|
153
|
+
baseFunc, arg1, arg2,
|
|
154
|
+
) => function args0Resolver(...args) {
|
|
155
|
+
return baseFunc(args, arg1, arg2)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// argument resolver for curryArgs3
|
|
159
|
+
const curryArgs3ResolveArgs1 = (
|
|
160
|
+
baseFunc, arg0, arg2,
|
|
161
|
+
) => function arg1Resolver(...args) {
|
|
162
|
+
return baseFunc(arg0, args, arg2)
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// argument resolver for curryArgs3
|
|
166
|
+
const curryArgs3ResolveArgs2 = (
|
|
167
|
+
baseFunc, arg0, arg1,
|
|
168
|
+
) => function arg2Resolver(...args) {
|
|
169
|
+
return baseFunc(arg0, arg1, args)
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
173
|
+
if (arg0 == __) {
|
|
174
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
175
|
+
}
|
|
176
|
+
if (arg1 == __) {
|
|
177
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
178
|
+
}
|
|
179
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const switchCase = (...args) => {
|
|
183
|
+
const values = args.pop()
|
|
138
184
|
if (areAllValuesNonfunctions(values)) {
|
|
139
185
|
return nonfunctionsConditional(values, -2)
|
|
140
186
|
}
|
|
141
|
-
|
|
142
|
-
return arrayConditional
|
|
187
|
+
if (args.length == 0) {
|
|
188
|
+
return curryArgs3(arrayConditional, values, __, -2)
|
|
189
|
+
}
|
|
190
|
+
if (areAnyValuesPromises(args)) {
|
|
191
|
+
return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
|
|
143
192
|
}
|
|
193
|
+
return arrayConditional(values, args, -2)
|
|
144
194
|
}
|
|
145
195
|
|
|
146
196
|
export default switchCase
|
package/dist/tap.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
|
|
|
@@ -9,11 +9,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
|
|
|
9
9
|
|
|
10
10
|
const always = value => function getter() { return value }
|
|
11
11
|
|
|
12
|
-
const tapSync = func => function tapping(...args) {
|
|
13
|
-
func(...args)
|
|
14
|
-
return args[0]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
12
|
const thunkifyArgs = (func, args) => function thunk() {
|
|
18
13
|
return func(...args)
|
|
19
14
|
}
|
|
@@ -61,8 +56,6 @@ const tap = func => function tapping(...args) {
|
|
|
61
56
|
return isPromise(call) ? call.then(always(result)) : result
|
|
62
57
|
}
|
|
63
58
|
|
|
64
|
-
tap.sync = tapSync
|
|
65
|
-
|
|
66
59
|
tap.if = (predicate, func) => function tappingIf(...args) {
|
|
67
60
|
const predication = predicate(...args)
|
|
68
61
|
if (isPromise(predication)) {
|
package/dist/tap.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),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)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
|
package/dist/tap.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
|
|
|
@@ -15,11 +15,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
|
|
|
15
15
|
|
|
16
16
|
const always = value => function getter() { return value }
|
|
17
17
|
|
|
18
|
-
const tapSync = func => function tapping(...args) {
|
|
19
|
-
func(...args)
|
|
20
|
-
return args[0]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
18
|
const thunkifyArgs = (func, args) => function thunk() {
|
|
24
19
|
return func(...args)
|
|
25
20
|
}
|
|
@@ -67,8 +62,6 @@ const tap = func => function tapping(...args) {
|
|
|
67
62
|
return isPromise(call) ? call.then(always(result)) : result
|
|
68
63
|
}
|
|
69
64
|
|
|
70
|
-
tap.sync = tapSync
|
|
71
|
-
|
|
72
65
|
tap.if = (predicate, func) => function tappingIf(...args) {
|
|
73
66
|
const predication = predicate(...args)
|
|
74
67
|
if (isPromise(predication)) {
|
package/dist/tap.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(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.if=(u,f)=>function(...i){const c=u(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(r(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},r}());
|
package/dist/tap.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 isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),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)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
|
package/dist/tap.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
|
|
|
@@ -9,11 +9,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
|
|
|
9
9
|
|
|
10
10
|
const always = value => function getter() { return value }
|
|
11
11
|
|
|
12
|
-
const tapSync = func => function tapping(...args) {
|
|
13
|
-
func(...args)
|
|
14
|
-
return args[0]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
12
|
const thunkifyArgs = (func, args) => function thunk() {
|
|
18
13
|
return func(...args)
|
|
19
14
|
}
|
|
@@ -61,8 +56,6 @@ const tap = func => function tapping(...args) {
|
|
|
61
56
|
return isPromise(call) ? call.then(always(result)) : result
|
|
62
57
|
}
|
|
63
58
|
|
|
64
|
-
tap.sync = tapSync
|
|
65
|
-
|
|
66
59
|
tap.if = (predicate, func) => function tappingIf(...args) {
|
|
67
60
|
const predication = predicate(...args)
|
|
68
61
|
if (isPromise(predication)) {
|