rubico 1.9.6 → 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 +162 -0
- 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 +105 -45
- package/always.js +3 -9
- package/and.js +69 -45
- 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 +45 -22
- 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/curry.js +20 -12
- 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 +38 -3
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +38 -3
- package/dist/omit.min.js +3 -3
- package/dist/omit.min.mjs +3 -3
- package/dist/omit.mjs +38 -3
- 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 +38 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +38 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.min.mjs +3 -3
- package/dist/pick.mjs +38 -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 +746 -869
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.js +746 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.min.mjs +3 -3
- package/dist/rubico.mjs +746 -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 -2025
- package/eq.js +21 -63
- package/es.js +746 -869
- package/every.js +94 -0
- package/filter.js +83 -125
- package/flatMap.js +105 -154
- package/forEach.js +82 -0
- package/get.js +44 -36
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +746 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +153 -203
- package/memory-usage/reduce.js +2 -2
- package/not.js +30 -49
- package/omit.js +36 -13
- package/or.js +64 -41
- package/package.json +7 -7
- package/pick.js +52 -22
- package/pipe.js +27 -92
- package/reduce.js +114 -129
- package/rubico.js +10 -8
- package/set.js +60 -24
- package/some.js +105 -0
- package/switchCase.js +29 -25
- package/tap.js +15 -45
- package/test.js +847 -1083
- package/thunkify.js +11 -5
- package/transform.js +57 -81
- package/tryCatch.js +38 -32
- 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 -88
- 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 -91
- 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/pick.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 isArray=Array.isArray,memoizeCappedUnary=function(t
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,memoizeCappedUnary=function(r,t){const e=new Map,n=function(n){if(e.has(n))return e.get(n);const i=r(n);return e.set(n,i),e.size>t&&e.clear(),i};return n.cache=e,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const t=r.length-1,e="["==r[0],n="]"==r[t];return e&&n?r.slice(1,t).split(pathDelimiters):e?r.slice(1).split(pathDelimiters):n?r.slice(0,t).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,t){const e=propertyPathToArray(t),n=e.length;let i=-1,o=r;for(;++i<n;)if(o=o[e[i]],null==o)return;return o},isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},setByPath=function(r,t,e){if(!isObject(r))return r;const n=propertyPathToArray(e),i=n.length,o=i-1,c={...r};let s=c,l=-1;for(;++l<i;){const r=n[l];if(l==o)s[r]=t;else{const t=s[r],e=isArray(t)?t.slice():{...t};s[r]=e,s=e}}return c},__=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(e){return r(e,t)},curry2ResolveArg1=(r,t)=>function(e){return r(t,e)},curry2=function(r,t,e){return t==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,t)},_pick=function(r,t){if(null==r)return r;const e=t.length;let n={},i=-1;for(;++i<e;){const e=t[i],o=getByPath(r,e);null!=o&&(n=setByPath(n,o,e))}return n},pick=function(r,t){return null==t?curry2(_pick,__,r):null!=(e=r)&&"function"==typeof e.then?r.then(curry2(_pick,__,t)):_pick(r,t);var e};export default pick;
|
package/dist/pick.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,6 +11,8 @@
|
|
|
11
11
|
else (root.pick = pick) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
14
16
|
const isArray = Array.isArray
|
|
15
17
|
|
|
16
18
|
const memoizeCappedUnary = function (func, cap) {
|
|
@@ -105,7 +107,30 @@ const setByPath = function (obj, value, path) {
|
|
|
105
107
|
return result
|
|
106
108
|
}
|
|
107
109
|
|
|
108
|
-
const
|
|
110
|
+
const __ = Symbol.for('placeholder')
|
|
111
|
+
|
|
112
|
+
// argument resolver for curry2
|
|
113
|
+
const curry2ResolveArg0 = (
|
|
114
|
+
baseFunc, arg1,
|
|
115
|
+
) => function arg0Resolver(arg0) {
|
|
116
|
+
return baseFunc(arg0, arg1)
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// argument resolver for curry2
|
|
120
|
+
const curry2ResolveArg1 = (
|
|
121
|
+
baseFunc, arg0,
|
|
122
|
+
) => function arg1Resolver(arg1) {
|
|
123
|
+
return baseFunc(arg0, arg1)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
127
|
+
return arg0 == __
|
|
128
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
129
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// _pick(source Object, keys Array<string>) -> result Object
|
|
133
|
+
const _pick = function (source, keys) {
|
|
109
134
|
if (source == null) {
|
|
110
135
|
return source
|
|
111
136
|
}
|
|
@@ -122,5 +147,15 @@ const pick = keys => function picking(source) {
|
|
|
122
147
|
return result
|
|
123
148
|
}
|
|
124
149
|
|
|
150
|
+
const pick = function (arg0, arg1) {
|
|
151
|
+
if (arg1 == null) {
|
|
152
|
+
return curry2(_pick, __, arg0)
|
|
153
|
+
}
|
|
154
|
+
if (isPromise(arg0)) {
|
|
155
|
+
return arg0.then(curry2(_pick, __, arg1))
|
|
156
|
+
}
|
|
157
|
+
return _pick(arg0, arg1)
|
|
158
|
+
}
|
|
159
|
+
|
|
125
160
|
return pick
|
|
126
161
|
}())))
|
package/dist/pick.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(t
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.pick=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=/[.|[|\]]+/,e=function(n,t){const e=new Map,r=function(r){if(e.has(r))return e.get(r);const o=n(r);return e.set(r,o),e.size>t&&e.clear(),o};return r.cache=e,r}((function(n){const e=n.length-1,r="["==n[0],o="]"==n[e];return r&&o?n.slice(1,e).split(t):r?n.slice(1).split(t):o?n.slice(0,e).split(t):n.split(t)}),500),r=t=>n(t)?t:"string"==typeof t?e(t):[t],o=function(n,t){const e=r(t),o=e.length;let u=-1,c=n;for(;++u<o;)if(c=c[e[u]],null==c)return;return c},u=function(t,e,o){if(!(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(t))return t;const u=r(o),c=u.length,i=c-1,l={...t};let f=l,s=-1;for(;++s<c;){const t=u[s];if(s==i)f[t]=e;else{const e=f[t],r=n(e)?e.slice():{...e};f[t]=r,f=r}}return l},c=Symbol.for("placeholder"),i=function(n,t,e){return t==c?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},l=function(n,t){if(null==n)return n;const e=t.length;let r={},c=-1;for(;++c<e;){const e=t[c],i=o(n,e);null!=i&&(r=u(r,i,e))}return r};return function(n,t){return null==t?i(l,c,n):null!=(e=n)&&"function"==typeof e.then?n.then(i(l,c,t)):l(n,t);var e}}());
|
package/dist/pick.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,memoizeCappedUnary=function(t
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,memoizeCappedUnary=function(r,t){const e=new Map,n=function(n){if(e.has(n))return e.get(n);const i=r(n);return e.set(n,i),e.size>t&&e.clear(),i};return n.cache=e,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const t=r.length-1,e="["==r[0],n="]"==r[t];return e&&n?r.slice(1,t).split(pathDelimiters):e?r.slice(1).split(pathDelimiters):n?r.slice(0,t).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,t){const e=propertyPathToArray(t),n=e.length;let i=-1,o=r;for(;++i<n;)if(o=o[e[i]],null==o)return;return o},isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},setByPath=function(r,t,e){if(!isObject(r))return r;const n=propertyPathToArray(e),i=n.length,o=i-1,c={...r};let s=c,l=-1;for(;++l<i;){const r=n[l];if(l==o)s[r]=t;else{const t=s[r],e=isArray(t)?t.slice():{...t};s[r]=e,s=e}}return c},__=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(e){return r(e,t)},curry2ResolveArg1=(r,t)=>function(e){return r(t,e)},curry2=function(r,t,e){return t==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,t)},_pick=function(r,t){if(null==r)return r;const e=t.length;let n={},i=-1;for(;++i<e;){const e=t[i],o=getByPath(r,e);null!=o&&(n=setByPath(n,o,e))}return n},pick=function(r,t){return null==t?curry2(_pick,__,r):null!=(e=r)&&"function"==typeof e.then?r.then(curry2(_pick,__,t)):_pick(r,t);var e};export default pick;
|
package/dist/pick.mjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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
|
+
|
|
8
10
|
const isArray = Array.isArray
|
|
9
11
|
|
|
10
12
|
const memoizeCappedUnary = function (func, cap) {
|
|
@@ -99,7 +101,30 @@ const setByPath = function (obj, value, path) {
|
|
|
99
101
|
return result
|
|
100
102
|
}
|
|
101
103
|
|
|
102
|
-
const
|
|
104
|
+
const __ = Symbol.for('placeholder')
|
|
105
|
+
|
|
106
|
+
// argument resolver for curry2
|
|
107
|
+
const curry2ResolveArg0 = (
|
|
108
|
+
baseFunc, arg1,
|
|
109
|
+
) => function arg0Resolver(arg0) {
|
|
110
|
+
return baseFunc(arg0, arg1)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// argument resolver for curry2
|
|
114
|
+
const curry2ResolveArg1 = (
|
|
115
|
+
baseFunc, arg0,
|
|
116
|
+
) => function arg1Resolver(arg1) {
|
|
117
|
+
return baseFunc(arg0, arg1)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
121
|
+
return arg0 == __
|
|
122
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
123
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// _pick(source Object, keys Array<string>) -> result Object
|
|
127
|
+
const _pick = function (source, keys) {
|
|
103
128
|
if (source == null) {
|
|
104
129
|
return source
|
|
105
130
|
}
|
|
@@ -116,4 +141,14 @@ const pick = keys => function picking(source) {
|
|
|
116
141
|
return result
|
|
117
142
|
}
|
|
118
143
|
|
|
144
|
+
const pick = function (arg0, arg1) {
|
|
145
|
+
if (arg1 == null) {
|
|
146
|
+
return curry2(_pick, __, arg0)
|
|
147
|
+
}
|
|
148
|
+
if (isPromise(arg0)) {
|
|
149
|
+
return arg0.then(curry2(_pick, __, arg1))
|
|
150
|
+
}
|
|
151
|
+
return _pick(arg0, arg1)
|
|
152
|
+
}
|
|
153
|
+
|
|
119
154
|
export default pick
|
package/dist/pipe.es.js
CHANGED
|
@@ -1,14 +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 noop = function () {}
|
|
9
|
-
|
|
10
8
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
11
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
|
+
|
|
12
24
|
const funcConcat = (
|
|
13
25
|
funcA, funcB,
|
|
14
26
|
) => function pipedFunction(...args) {
|
|
@@ -18,59 +30,43 @@ const funcConcat = (
|
|
|
18
30
|
: funcB(intermediate)
|
|
19
31
|
}
|
|
20
32
|
|
|
21
|
-
const
|
|
22
|
-
funcA, funcB,
|
|
23
|
-
) => function pipedFunction(...args) {
|
|
24
|
-
return funcB(funcA(...args))
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const objectProto = Object.prototype
|
|
28
|
-
|
|
29
|
-
const nativeObjectToString = objectProto.toString
|
|
33
|
+
const funcApply = (func, args) => func(...args)
|
|
30
34
|
|
|
31
|
-
const
|
|
35
|
+
const __ = Symbol.for('placeholder')
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
// argument resolver for curry2
|
|
38
|
+
const curry2ResolveArg0 = (
|
|
39
|
+
baseFunc, arg1,
|
|
40
|
+
) => function arg0Resolver(arg0) {
|
|
41
|
+
return baseFunc(arg0, arg1)
|
|
42
|
+
}
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
// argument resolver for curry2
|
|
45
|
+
const curry2ResolveArg1 = (
|
|
46
|
+
baseFunc, arg0,
|
|
47
|
+
) => function arg1Resolver(arg1) {
|
|
48
|
+
return baseFunc(arg0, arg1)
|
|
49
|
+
}
|
|
38
50
|
|
|
39
|
-
const
|
|
51
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
52
|
+
return arg0 == __
|
|
53
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
54
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
55
|
+
}
|
|
40
56
|
|
|
41
57
|
const pipe = function (...args) {
|
|
42
58
|
const funcs = args.pop()
|
|
59
|
+
const pipeline = funcs.reduce(funcConcat)
|
|
43
60
|
|
|
44
|
-
if (args.length
|
|
45
|
-
return
|
|
61
|
+
if (args.length == 0) {
|
|
62
|
+
return pipeline
|
|
46
63
|
}
|
|
47
64
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return function pipeline(...args) {
|
|
51
|
-
const firstArg = args[0]
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
typeof firstArg == 'function'
|
|
55
|
-
&& !isGeneratorFunction(firstArg)
|
|
56
|
-
&& !isAsyncGeneratorFunction(firstArg)
|
|
57
|
-
) {
|
|
58
|
-
if (functionComposition == noop) {
|
|
59
|
-
functionComposition = funcs.reduceRight(funcConcat)
|
|
60
|
-
}
|
|
61
|
-
return functionComposition(firstArg)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (functionPipeline == noop) {
|
|
65
|
-
functionPipeline = funcs.reduce(funcConcat)
|
|
66
|
-
}
|
|
67
|
-
return functionPipeline(...args)
|
|
65
|
+
if (areAnyValuesPromises(args)) {
|
|
66
|
+
return promiseAll(args).then(curry2(funcApply, pipeline, __))
|
|
68
67
|
}
|
|
69
|
-
}
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
pipe.sync = pipeSync
|
|
69
|
+
return pipeline(...args)
|
|
70
|
+
}
|
|
75
71
|
|
|
76
72
|
export default pipe
|
package/dist/pipe.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
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},promiseAll=Promise.all.bind(Promise),funcConcat=(r,e)=>function(...n){const o=r(...n);return isPromise(o)?o.then(e):e(o)},funcApply=(r,e)=>r(...e),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},pipe=function(...r){const e=r.pop().reduce(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then((n=funcApply,t=__,(o=e)==__?curry2ResolveArg0(n,t):curry2ResolveArg1(n,o))):e(...r);var n,o,t};export default pipe;
|
package/dist/pipe.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,22 @@
|
|
|
11
11
|
else (root.pipe = pipe) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
-
const noop = function () {}
|
|
15
|
-
|
|
16
14
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
17
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
|
+
|
|
18
30
|
const funcConcat = (
|
|
19
31
|
funcA, funcB,
|
|
20
32
|
) => function pipedFunction(...args) {
|
|
@@ -24,60 +36,44 @@ const funcConcat = (
|
|
|
24
36
|
: funcB(intermediate)
|
|
25
37
|
}
|
|
26
38
|
|
|
27
|
-
const
|
|
28
|
-
funcA, funcB,
|
|
29
|
-
) => function pipedFunction(...args) {
|
|
30
|
-
return funcB(funcA(...args))
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const objectProto = Object.prototype
|
|
34
|
-
|
|
35
|
-
const nativeObjectToString = objectProto.toString
|
|
39
|
+
const funcApply = (func, args) => func(...args)
|
|
36
40
|
|
|
37
|
-
const
|
|
41
|
+
const __ = Symbol.for('placeholder')
|
|
38
42
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
// argument resolver for curry2
|
|
44
|
+
const curry2ResolveArg0 = (
|
|
45
|
+
baseFunc, arg1,
|
|
46
|
+
) => function arg0Resolver(arg0) {
|
|
47
|
+
return baseFunc(arg0, arg1)
|
|
48
|
+
}
|
|
42
49
|
|
|
43
|
-
|
|
50
|
+
// argument resolver for curry2
|
|
51
|
+
const curry2ResolveArg1 = (
|
|
52
|
+
baseFunc, arg0,
|
|
53
|
+
) => function arg1Resolver(arg1) {
|
|
54
|
+
return baseFunc(arg0, arg1)
|
|
55
|
+
}
|
|
44
56
|
|
|
45
|
-
const
|
|
57
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
58
|
+
return arg0 == __
|
|
59
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
60
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
61
|
+
}
|
|
46
62
|
|
|
47
63
|
const pipe = function (...args) {
|
|
48
64
|
const funcs = args.pop()
|
|
65
|
+
const pipeline = funcs.reduce(funcConcat)
|
|
49
66
|
|
|
50
|
-
if (args.length
|
|
51
|
-
return
|
|
67
|
+
if (args.length == 0) {
|
|
68
|
+
return pipeline
|
|
52
69
|
}
|
|
53
70
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return function pipeline(...args) {
|
|
57
|
-
const firstArg = args[0]
|
|
58
|
-
|
|
59
|
-
if (
|
|
60
|
-
typeof firstArg == 'function'
|
|
61
|
-
&& !isGeneratorFunction(firstArg)
|
|
62
|
-
&& !isAsyncGeneratorFunction(firstArg)
|
|
63
|
-
) {
|
|
64
|
-
if (functionComposition == noop) {
|
|
65
|
-
functionComposition = funcs.reduceRight(funcConcat)
|
|
66
|
-
}
|
|
67
|
-
return functionComposition(firstArg)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (functionPipeline == noop) {
|
|
71
|
-
functionPipeline = funcs.reduce(funcConcat)
|
|
72
|
-
}
|
|
73
|
-
return functionPipeline(...args)
|
|
71
|
+
if (areAnyValuesPromises(args)) {
|
|
72
|
+
return promiseAll(args).then(curry2(funcApply, pipeline, __))
|
|
74
73
|
}
|
|
75
|
-
}
|
|
76
74
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
pipe.sync = pipeSync
|
|
75
|
+
return pipeline(...args)
|
|
76
|
+
}
|
|
81
77
|
|
|
82
78
|
return pipe
|
|
83
79
|
}())))
|
package/dist/pipe.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(t
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.pipe=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Promise.all.bind(Promise),e=(t,e)=>function(...o){const r=t(...o);return n(r)?r.then(e):e(r)},o=(n,t)=>n(...t),r=Symbol.for("placeholder");return function(...u){const i=u.pop().reduce(e);return 0==u.length?i:function(t){const e=t.length;let o=-1;for(;++o<e;){const e=t[o];if(n(e))return!0}return!1}(u)?t(u).then((c=o,l=r,(f=i)==r?((n,t)=>function(e){return n(e,t)})(c,l):((n,t)=>function(e){return n(t,e)})(c,f))):i(...u);var c,f,l}}());
|
package/dist/pipe.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
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},promiseAll=Promise.all.bind(Promise),funcConcat=(r,e)=>function(...n){const o=r(...n);return isPromise(o)?o.then(e):e(o)},funcApply=(r,e)=>r(...e),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},pipe=function(...r){const e=r.pop().reduce(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then((n=funcApply,t=__,(o=e)==__?curry2ResolveArg0(n,t):curry2ResolveArg1(n,o))):e(...r);var n,o,t};export default pipe;
|
package/dist/pipe.mjs
CHANGED
|
@@ -1,14 +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 noop = function () {}
|
|
9
|
-
|
|
10
8
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
11
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
|
+
|
|
12
24
|
const funcConcat = (
|
|
13
25
|
funcA, funcB,
|
|
14
26
|
) => function pipedFunction(...args) {
|
|
@@ -18,59 +30,43 @@ const funcConcat = (
|
|
|
18
30
|
: funcB(intermediate)
|
|
19
31
|
}
|
|
20
32
|
|
|
21
|
-
const
|
|
22
|
-
funcA, funcB,
|
|
23
|
-
) => function pipedFunction(...args) {
|
|
24
|
-
return funcB(funcA(...args))
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const objectProto = Object.prototype
|
|
28
|
-
|
|
29
|
-
const nativeObjectToString = objectProto.toString
|
|
33
|
+
const funcApply = (func, args) => func(...args)
|
|
30
34
|
|
|
31
|
-
const
|
|
35
|
+
const __ = Symbol.for('placeholder')
|
|
32
36
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
37
|
+
// argument resolver for curry2
|
|
38
|
+
const curry2ResolveArg0 = (
|
|
39
|
+
baseFunc, arg1,
|
|
40
|
+
) => function arg0Resolver(arg0) {
|
|
41
|
+
return baseFunc(arg0, arg1)
|
|
42
|
+
}
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
// argument resolver for curry2
|
|
45
|
+
const curry2ResolveArg1 = (
|
|
46
|
+
baseFunc, arg0,
|
|
47
|
+
) => function arg1Resolver(arg1) {
|
|
48
|
+
return baseFunc(arg0, arg1)
|
|
49
|
+
}
|
|
38
50
|
|
|
39
|
-
const
|
|
51
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
52
|
+
return arg0 == __
|
|
53
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
54
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
55
|
+
}
|
|
40
56
|
|
|
41
57
|
const pipe = function (...args) {
|
|
42
58
|
const funcs = args.pop()
|
|
59
|
+
const pipeline = funcs.reduce(funcConcat)
|
|
43
60
|
|
|
44
|
-
if (args.length
|
|
45
|
-
return
|
|
61
|
+
if (args.length == 0) {
|
|
62
|
+
return pipeline
|
|
46
63
|
}
|
|
47
64
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return function pipeline(...args) {
|
|
51
|
-
const firstArg = args[0]
|
|
52
|
-
|
|
53
|
-
if (
|
|
54
|
-
typeof firstArg == 'function'
|
|
55
|
-
&& !isGeneratorFunction(firstArg)
|
|
56
|
-
&& !isAsyncGeneratorFunction(firstArg)
|
|
57
|
-
) {
|
|
58
|
-
if (functionComposition == noop) {
|
|
59
|
-
functionComposition = funcs.reduceRight(funcConcat)
|
|
60
|
-
}
|
|
61
|
-
return functionComposition(firstArg)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
if (functionPipeline == noop) {
|
|
65
|
-
functionPipeline = funcs.reduce(funcConcat)
|
|
66
|
-
}
|
|
67
|
-
return functionPipeline(...args)
|
|
65
|
+
if (areAnyValuesPromises(args)) {
|
|
66
|
+
return promiseAll(args).then(curry2(funcApply, pipeline, __))
|
|
68
67
|
}
|
|
69
|
-
}
|
|
70
68
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
pipe.sync = pipeSync
|
|
69
|
+
return pipeline(...args)
|
|
70
|
+
}
|
|
75
71
|
|
|
76
72
|
export default pipe
|