rubico 1.9.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/README.md +158 -81
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/build +472 -0
- package/compose.js +46 -0
- package/dist/Transducer.es.js +481 -0
- package/dist/Transducer.es.min.js +7 -0
- package/dist/Transducer.js +488 -0
- package/dist/Transducer.min.js +8 -0
- package/dist/Transducer.mjs +481 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +762 -883
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.global.js +2794 -0
- package/dist/rubico.global.min.js +8 -0
- package/dist/rubico.js +739 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.mjs +762 -883
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +31 -2042
- package/eq.js +21 -63
- package/es.js +739 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +739 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +22 -11
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/tmp.js +1 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/__.min.mjs +0 -7
- package/dist/all.min.mjs +0 -7
- package/dist/always.min.mjs +0 -7
- package/dist/and.min.mjs +0 -7
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/assign.min.mjs +0 -7
- package/dist/curry.min.mjs +0 -7
- package/dist/eq.min.mjs +0 -7
- package/dist/filter.min.mjs +0 -7
- package/dist/flatMap.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/get.min.mjs +0 -7
- package/dist/gt.min.mjs +0 -7
- package/dist/gte.min.mjs +0 -7
- package/dist/lt.min.mjs +0 -7
- package/dist/lte.min.mjs +0 -7
- package/dist/map.min.mjs +0 -7
- package/dist/not.min.mjs +0 -7
- package/dist/omit.min.mjs +0 -7
- package/dist/or.min.mjs +0 -7
- package/dist/pick.min.mjs +0 -7
- package/dist/pipe.min.mjs +0 -7
- package/dist/reduce.min.mjs +0 -7
- package/dist/rubico.min.mjs +0 -7
- package/dist/set.min.mjs +0 -7
- package/dist/switchCase.min.mjs +0 -7
- package/dist/tap.min.mjs +0 -7
- package/dist/thunkify.min.mjs +0 -7
- package/dist/transform.min.mjs +0 -7
- package/dist/tryCatch.min.mjs +0 -7
- package/dist/x/append.min.mjs +0 -7
- package/dist/x/callProp.min.mjs +0 -7
- package/dist/x/defaultsDeep.min.mjs +0 -7
- package/dist/x/differenceWith.min.mjs +0 -7
- package/dist/x/filterOut.min.mjs +0 -7
- package/dist/x/find.min.mjs +0 -7
- package/dist/x/findIndex.min.mjs +0 -7
- package/dist/x/first.min.mjs +0 -7
- package/dist/x/flatten.min.mjs +0 -7
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/dist/x/groupBy.min.mjs +0 -7
- package/dist/x/has.min.mjs +0 -7
- package/dist/x/identity.min.mjs +0 -7
- package/dist/x/includes.min.mjs +0 -7
- package/dist/x/isDeepEqual.min.mjs +0 -7
- package/dist/x/isEmpty.min.mjs +0 -7
- package/dist/x/isEqual.min.mjs +0 -7
- package/dist/x/isFunction.min.mjs +0 -7
- package/dist/x/isIn.min.mjs +0 -7
- package/dist/x/isObject.min.mjs +0 -7
- package/dist/x/isString.min.mjs +0 -7
- package/dist/x/keys.min.mjs +0 -7
- package/dist/x/last.min.mjs +0 -7
- package/dist/x/maxBy.min.mjs +0 -7
- package/dist/x/noop.min.mjs +0 -7
- package/dist/x/pluck.min.mjs +0 -7
- package/dist/x/prepend.min.mjs +0 -7
- package/dist/x/size.min.mjs +0 -7
- package/dist/x/trace.min.mjs +0 -7
- package/dist/x/unionWith.min.mjs +0 -7
- package/dist/x/uniq.min.mjs +0 -7
- package/dist/x/unless.min.mjs +0 -7
- package/dist/x/values.min.mjs +0 -7
- package/dist/x/when.min.mjs +0 -7
- package/distributor.js +0 -495
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/lt.mjs
CHANGED
|
@@ -1,84 +1,207 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
const spread2 = func => function spreading2([arg0, arg1]) {
|
|
9
|
-
return func(arg0, arg1)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
8
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
13
9
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
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
|
+
}
|
|
17
21
|
|
|
18
22
|
const __ = Symbol.for('placeholder')
|
|
19
23
|
|
|
20
|
-
// argument resolver for
|
|
21
|
-
const
|
|
22
|
-
baseFunc, arg1,
|
|
24
|
+
// argument resolver for curry4
|
|
25
|
+
const curry4ResolveArg0 = (
|
|
26
|
+
baseFunc, arg1, arg2, arg3,
|
|
23
27
|
) => function arg0Resolver(arg0) {
|
|
24
|
-
return baseFunc(arg0, arg1)
|
|
28
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
25
29
|
}
|
|
26
30
|
|
|
27
|
-
// argument resolver for
|
|
28
|
-
const
|
|
29
|
-
baseFunc, arg0,
|
|
31
|
+
// argument resolver for curry4
|
|
32
|
+
const curry4ResolveArg1 = (
|
|
33
|
+
baseFunc, arg0, arg2, arg3,
|
|
30
34
|
) => function arg1Resolver(arg1) {
|
|
31
|
-
return baseFunc(arg0, arg1)
|
|
35
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// argument resolver for curry4
|
|
39
|
+
const curry4ResolveArg2 = (
|
|
40
|
+
baseFunc, arg0, arg1, arg3,
|
|
41
|
+
) => function arg2Resolver(arg2) {
|
|
42
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// argument resolver for curry4
|
|
46
|
+
const curry4ResolveArg3 = (
|
|
47
|
+
baseFunc, arg0, arg1, arg2,
|
|
48
|
+
) => function arg3Resolver(arg3) {
|
|
49
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
53
|
+
if (arg0 == __) {
|
|
54
|
+
return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
|
|
55
|
+
}
|
|
56
|
+
if (arg1 == __) {
|
|
57
|
+
return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
|
|
58
|
+
}
|
|
59
|
+
if (arg2 == __) {
|
|
60
|
+
return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
|
|
61
|
+
}
|
|
62
|
+
return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// argument resolver for curryArgs4
|
|
66
|
+
const curryArgs4ResolveArgs0 = (
|
|
67
|
+
baseFunc, arg1, arg2, arg3,
|
|
68
|
+
) => function args0Resolver(...args) {
|
|
69
|
+
return baseFunc(args, arg1, arg2, arg3)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// argument resolver for curryArgs4
|
|
73
|
+
const curryArgs4ResolveArgs1 = (
|
|
74
|
+
baseFunc, arg0, arg2, arg3,
|
|
75
|
+
) => function args1Resolver(...args) {
|
|
76
|
+
return baseFunc(arg0, args, arg2, arg3)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// argument resolver for curryArgs4
|
|
80
|
+
const curryArgs4ResolveArgs2 = (
|
|
81
|
+
baseFunc, arg0, arg1, arg3,
|
|
82
|
+
) => function args2Resolver(...args) {
|
|
83
|
+
return baseFunc(arg0, arg1, args, arg3)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// argument resolver for curryArgs4
|
|
87
|
+
const curryArgs4ResolveArgs3 = (
|
|
88
|
+
baseFunc, arg0, arg1, arg2,
|
|
89
|
+
) => function args3Resolver(...args) {
|
|
90
|
+
return baseFunc(arg0, arg1, arg2, args)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const curryArgs4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
94
|
+
if (arg0 == __) {
|
|
95
|
+
return curryArgs4ResolveArgs0(baseFunc, arg1, arg2, arg3)
|
|
96
|
+
}
|
|
97
|
+
if (arg1 == __) {
|
|
98
|
+
return curryArgs4ResolveArgs1(baseFunc, arg0, arg2, arg3)
|
|
99
|
+
}
|
|
100
|
+
if (arg2 == __) {
|
|
101
|
+
return curryArgs4ResolveArgs2(baseFunc, arg0, arg1, arg3)
|
|
102
|
+
}
|
|
103
|
+
return curryArgs4ResolveArgs3(baseFunc, arg0, arg1, arg2)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const spread2 = func => function spreading2([arg0, arg1]) {
|
|
107
|
+
return func(arg0, arg1)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
111
|
+
|
|
112
|
+
// leftResolverRightResolverCompare(
|
|
113
|
+
// args Array, comparator function, left function, right function,
|
|
114
|
+
// ) -> Promise|boolean
|
|
115
|
+
const leftResolverRightResolverCompare = function (
|
|
116
|
+
args, comparator, left, right,
|
|
117
|
+
) {
|
|
118
|
+
const leftResult = left(...args),
|
|
119
|
+
rightResult = right(...args)
|
|
120
|
+
if (isPromise(leftResult) || isPromise(rightResult)) {
|
|
121
|
+
return promiseAll([leftResult, rightResult]).then(spread2(comparator))
|
|
122
|
+
}
|
|
123
|
+
return comparator(leftResult, rightResult)
|
|
32
124
|
}
|
|
33
125
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
126
|
+
// leftResolverRightValueCompare(
|
|
127
|
+
// args Array, comparator function, left function, right any
|
|
128
|
+
// ) -> Promise|boolean
|
|
129
|
+
const leftResolverRightValueCompare = function (args, comparator, left, right) {
|
|
130
|
+
const leftResult = left(...args)
|
|
131
|
+
if (isPromise(leftResult) || isPromise(right)) {
|
|
132
|
+
return promiseAll([leftResult, right]).then(spread2(comparator))
|
|
133
|
+
}
|
|
134
|
+
return comparator(leftResult, right)
|
|
38
135
|
}
|
|
39
136
|
|
|
40
|
-
|
|
137
|
+
// leftValueRightResolverCompare(
|
|
138
|
+
// args Array, comparator function, left any, right any,
|
|
139
|
+
// ) -> Promise|boolean
|
|
140
|
+
const leftValueRightResolverCompare = function (args, comparator, left, right) {
|
|
141
|
+
const rightResult = right(...args)
|
|
142
|
+
if (isPromise(left) || isPromise(rightResult)) {
|
|
143
|
+
return promiseAll([left, rightResult]).then(spread2(comparator))
|
|
144
|
+
}
|
|
145
|
+
return comparator(left, rightResult)
|
|
146
|
+
}
|
|
41
147
|
|
|
42
|
-
|
|
148
|
+
// ComparisonOperator(comparator function) -> operator function
|
|
149
|
+
const ComparisonOperator = comparator => function operator(...args) {
|
|
150
|
+
const right = args.pop()
|
|
151
|
+
const left = args.pop()
|
|
43
152
|
const isLeftResolver = typeof left == 'function',
|
|
44
153
|
isRightResolver = typeof right == 'function'
|
|
45
154
|
|
|
46
155
|
if (isLeftResolver && isRightResolver) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return leftResolve.then(curry2(lessThan, __, rightResolve))
|
|
57
|
-
} else if (isRightPromise) {
|
|
58
|
-
return rightResolve.then(curry2(lessThan, leftResolve, __))
|
|
59
|
-
}
|
|
60
|
-
return leftResolve < rightResolve
|
|
156
|
+
if (args.length == 0) {
|
|
157
|
+
return curryArgs4(
|
|
158
|
+
leftResolverRightResolverCompare, __, comparator, left, right,
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
if (areAnyValuesPromises(args)) {
|
|
162
|
+
return promiseAll(args).then(curry4(
|
|
163
|
+
leftResolverRightResolverCompare, __, comparator, left, right,
|
|
164
|
+
))
|
|
61
165
|
}
|
|
166
|
+
return leftResolverRightResolverCompare(args, comparator, left, right)
|
|
62
167
|
}
|
|
63
168
|
|
|
64
169
|
if (isLeftResolver) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
170
|
+
if (args.length == 0) {
|
|
171
|
+
return curryArgs4(
|
|
172
|
+
leftResolverRightValueCompare, __, comparator, left, right,
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
if (areAnyValuesPromises(args)) {
|
|
176
|
+
return promiseAll(args).then(curry4(
|
|
177
|
+
leftResolverRightValueCompare, __, comparator, left, right,
|
|
178
|
+
))
|
|
70
179
|
}
|
|
180
|
+
return leftResolverRightValueCompare(args, comparator, left, right)
|
|
71
181
|
}
|
|
182
|
+
|
|
72
183
|
if (isRightResolver) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
184
|
+
if (args.length == 0) {
|
|
185
|
+
return curryArgs4(
|
|
186
|
+
leftValueRightResolverCompare, __, comparator, left, right,
|
|
187
|
+
)
|
|
188
|
+
}
|
|
189
|
+
if (areAnyValuesPromises(args)) {
|
|
190
|
+
return promiseAll(args).then(curry4(
|
|
191
|
+
leftValueRightResolverCompare, __, comparator, left, right,
|
|
192
|
+
))
|
|
78
193
|
}
|
|
194
|
+
return leftValueRightResolverCompare(args, comparator, left, right)
|
|
79
195
|
}
|
|
80
196
|
|
|
81
|
-
|
|
197
|
+
if (isPromise(left) || isPromise(right)) {
|
|
198
|
+
return promiseAll([left, right]).then(spread2(comparator))
|
|
199
|
+
}
|
|
200
|
+
return comparator(left, right)
|
|
82
201
|
}
|
|
83
202
|
|
|
203
|
+
const lessThan = (left, right) => left < right
|
|
204
|
+
|
|
205
|
+
const lt = ComparisonOperator(lessThan)
|
|
206
|
+
|
|
84
207
|
export default lt
|
package/dist/lte.es.js
CHANGED
|
@@ -1,84 +1,207 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
const spread2 = func => function spreading2([arg0, arg1]) {
|
|
9
|
-
return func(arg0, arg1)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
8
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
13
9
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
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
|
+
}
|
|
17
21
|
|
|
18
22
|
const __ = Symbol.for('placeholder')
|
|
19
23
|
|
|
20
|
-
// argument resolver for
|
|
21
|
-
const
|
|
22
|
-
baseFunc, arg1,
|
|
24
|
+
// argument resolver for curry4
|
|
25
|
+
const curry4ResolveArg0 = (
|
|
26
|
+
baseFunc, arg1, arg2, arg3,
|
|
23
27
|
) => function arg0Resolver(arg0) {
|
|
24
|
-
return baseFunc(arg0, arg1)
|
|
28
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
25
29
|
}
|
|
26
30
|
|
|
27
|
-
// argument resolver for
|
|
28
|
-
const
|
|
29
|
-
baseFunc, arg0,
|
|
31
|
+
// argument resolver for curry4
|
|
32
|
+
const curry4ResolveArg1 = (
|
|
33
|
+
baseFunc, arg0, arg2, arg3,
|
|
30
34
|
) => function arg1Resolver(arg1) {
|
|
31
|
-
return baseFunc(arg0, arg1)
|
|
35
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// argument resolver for curry4
|
|
39
|
+
const curry4ResolveArg2 = (
|
|
40
|
+
baseFunc, arg0, arg1, arg3,
|
|
41
|
+
) => function arg2Resolver(arg2) {
|
|
42
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// argument resolver for curry4
|
|
46
|
+
const curry4ResolveArg3 = (
|
|
47
|
+
baseFunc, arg0, arg1, arg2,
|
|
48
|
+
) => function arg3Resolver(arg3) {
|
|
49
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
53
|
+
if (arg0 == __) {
|
|
54
|
+
return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
|
|
55
|
+
}
|
|
56
|
+
if (arg1 == __) {
|
|
57
|
+
return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
|
|
58
|
+
}
|
|
59
|
+
if (arg2 == __) {
|
|
60
|
+
return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
|
|
61
|
+
}
|
|
62
|
+
return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// argument resolver for curryArgs4
|
|
66
|
+
const curryArgs4ResolveArgs0 = (
|
|
67
|
+
baseFunc, arg1, arg2, arg3,
|
|
68
|
+
) => function args0Resolver(...args) {
|
|
69
|
+
return baseFunc(args, arg1, arg2, arg3)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// argument resolver for curryArgs4
|
|
73
|
+
const curryArgs4ResolveArgs1 = (
|
|
74
|
+
baseFunc, arg0, arg2, arg3,
|
|
75
|
+
) => function args1Resolver(...args) {
|
|
76
|
+
return baseFunc(arg0, args, arg2, arg3)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// argument resolver for curryArgs4
|
|
80
|
+
const curryArgs4ResolveArgs2 = (
|
|
81
|
+
baseFunc, arg0, arg1, arg3,
|
|
82
|
+
) => function args2Resolver(...args) {
|
|
83
|
+
return baseFunc(arg0, arg1, args, arg3)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// argument resolver for curryArgs4
|
|
87
|
+
const curryArgs4ResolveArgs3 = (
|
|
88
|
+
baseFunc, arg0, arg1, arg2,
|
|
89
|
+
) => function args3Resolver(...args) {
|
|
90
|
+
return baseFunc(arg0, arg1, arg2, args)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const curryArgs4 = function (baseFunc, arg0, arg1, arg2, arg3) {
|
|
94
|
+
if (arg0 == __) {
|
|
95
|
+
return curryArgs4ResolveArgs0(baseFunc, arg1, arg2, arg3)
|
|
96
|
+
}
|
|
97
|
+
if (arg1 == __) {
|
|
98
|
+
return curryArgs4ResolveArgs1(baseFunc, arg0, arg2, arg3)
|
|
99
|
+
}
|
|
100
|
+
if (arg2 == __) {
|
|
101
|
+
return curryArgs4ResolveArgs2(baseFunc, arg0, arg1, arg3)
|
|
102
|
+
}
|
|
103
|
+
return curryArgs4ResolveArgs3(baseFunc, arg0, arg1, arg2)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const spread2 = func => function spreading2([arg0, arg1]) {
|
|
107
|
+
return func(arg0, arg1)
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
111
|
+
|
|
112
|
+
// leftResolverRightResolverCompare(
|
|
113
|
+
// args Array, comparator function, left function, right function,
|
|
114
|
+
// ) -> Promise|boolean
|
|
115
|
+
const leftResolverRightResolverCompare = function (
|
|
116
|
+
args, comparator, left, right,
|
|
117
|
+
) {
|
|
118
|
+
const leftResult = left(...args),
|
|
119
|
+
rightResult = right(...args)
|
|
120
|
+
if (isPromise(leftResult) || isPromise(rightResult)) {
|
|
121
|
+
return promiseAll([leftResult, rightResult]).then(spread2(comparator))
|
|
122
|
+
}
|
|
123
|
+
return comparator(leftResult, rightResult)
|
|
32
124
|
}
|
|
33
125
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
126
|
+
// leftResolverRightValueCompare(
|
|
127
|
+
// args Array, comparator function, left function, right any
|
|
128
|
+
// ) -> Promise|boolean
|
|
129
|
+
const leftResolverRightValueCompare = function (args, comparator, left, right) {
|
|
130
|
+
const leftResult = left(...args)
|
|
131
|
+
if (isPromise(leftResult) || isPromise(right)) {
|
|
132
|
+
return promiseAll([leftResult, right]).then(spread2(comparator))
|
|
133
|
+
}
|
|
134
|
+
return comparator(leftResult, right)
|
|
38
135
|
}
|
|
39
136
|
|
|
40
|
-
|
|
137
|
+
// leftValueRightResolverCompare(
|
|
138
|
+
// args Array, comparator function, left any, right any,
|
|
139
|
+
// ) -> Promise|boolean
|
|
140
|
+
const leftValueRightResolverCompare = function (args, comparator, left, right) {
|
|
141
|
+
const rightResult = right(...args)
|
|
142
|
+
if (isPromise(left) || isPromise(rightResult)) {
|
|
143
|
+
return promiseAll([left, rightResult]).then(spread2(comparator))
|
|
144
|
+
}
|
|
145
|
+
return comparator(left, rightResult)
|
|
146
|
+
}
|
|
41
147
|
|
|
42
|
-
|
|
148
|
+
// ComparisonOperator(comparator function) -> operator function
|
|
149
|
+
const ComparisonOperator = comparator => function operator(...args) {
|
|
150
|
+
const right = args.pop()
|
|
151
|
+
const left = args.pop()
|
|
43
152
|
const isLeftResolver = typeof left == 'function',
|
|
44
153
|
isRightResolver = typeof right == 'function'
|
|
45
154
|
|
|
46
155
|
if (isLeftResolver && isRightResolver) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
return leftResolve.then(curry2(lessThanOrEqual, __, rightResolve))
|
|
57
|
-
} else if (isRightPromise) {
|
|
58
|
-
return rightResolve.then(curry2(lessThanOrEqual, leftResolve, __))
|
|
59
|
-
}
|
|
60
|
-
return leftResolve <= rightResolve
|
|
156
|
+
if (args.length == 0) {
|
|
157
|
+
return curryArgs4(
|
|
158
|
+
leftResolverRightResolverCompare, __, comparator, left, right,
|
|
159
|
+
)
|
|
160
|
+
}
|
|
161
|
+
if (areAnyValuesPromises(args)) {
|
|
162
|
+
return promiseAll(args).then(curry4(
|
|
163
|
+
leftResolverRightResolverCompare, __, comparator, left, right,
|
|
164
|
+
))
|
|
61
165
|
}
|
|
166
|
+
return leftResolverRightResolverCompare(args, comparator, left, right)
|
|
62
167
|
}
|
|
63
168
|
|
|
64
169
|
if (isLeftResolver) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
170
|
+
if (args.length == 0) {
|
|
171
|
+
return curryArgs4(
|
|
172
|
+
leftResolverRightValueCompare, __, comparator, left, right,
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
if (areAnyValuesPromises(args)) {
|
|
176
|
+
return promiseAll(args).then(curry4(
|
|
177
|
+
leftResolverRightValueCompare, __, comparator, left, right,
|
|
178
|
+
))
|
|
70
179
|
}
|
|
180
|
+
return leftResolverRightValueCompare(args, comparator, left, right)
|
|
71
181
|
}
|
|
182
|
+
|
|
72
183
|
if (isRightResolver) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
184
|
+
if (args.length == 0) {
|
|
185
|
+
return curryArgs4(
|
|
186
|
+
leftValueRightResolverCompare, __, comparator, left, right,
|
|
187
|
+
)
|
|
188
|
+
}
|
|
189
|
+
if (areAnyValuesPromises(args)) {
|
|
190
|
+
return promiseAll(args).then(curry4(
|
|
191
|
+
leftValueRightResolverCompare, __, comparator, left, right,
|
|
192
|
+
))
|
|
78
193
|
}
|
|
194
|
+
return leftValueRightResolverCompare(args, comparator, left, right)
|
|
79
195
|
}
|
|
80
196
|
|
|
81
|
-
|
|
197
|
+
if (isPromise(left) || isPromise(right)) {
|
|
198
|
+
return promiseAll([left, right]).then(spread2(comparator))
|
|
199
|
+
}
|
|
200
|
+
return comparator(left, right)
|
|
82
201
|
}
|
|
83
202
|
|
|
203
|
+
const lessThanOrEqual = (left, right) => left <= right
|
|
204
|
+
|
|
205
|
+
const lte = ComparisonOperator(lessThanOrEqual)
|
|
206
|
+
|
|
84
207
|
export default lte
|
package/dist/lte.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let s=-1;for(;++s<e;){const e=r[s];if(isPromise(e))return!0}return!1},__=Symbol.for("placeholder"),curry4ResolveArg0=(r,e,s,o)=>function(l){return r(l,e,s,o)},curry4ResolveArg1=(r,e,s,o)=>function(l){return r(e,l,s,o)},curry4ResolveArg2=(r,e,s,o)=>function(l){return r(e,s,l,o)},curry4ResolveArg3=(r,e,s,o)=>function(l){return r(e,s,o,l)},curry4=function(r,e,s,o,l){return e==__?curry4ResolveArg0(r,s,o,l):s==__?curry4ResolveArg1(r,e,o,l):o==__?curry4ResolveArg2(r,e,s,l):curry4ResolveArg3(r,e,s,o)},curryArgs4ResolveArgs0=(r,e,s,o)=>function(...l){return r(l,e,s,o)},curryArgs4ResolveArgs1=(r,e,s,o)=>function(...l){return r(e,l,s,o)},curryArgs4ResolveArgs2=(r,e,s,o)=>function(...l){return r(e,s,l,o)},curryArgs4ResolveArgs3=(r,e,s,o)=>function(...l){return r(e,s,o,l)},curryArgs4=function(r,e,s,o,l){return e==__?curryArgs4ResolveArgs0(r,s,o,l):s==__?curryArgs4ResolveArgs1(r,e,o,l):o==__?curryArgs4ResolveArgs2(r,e,s,l):curryArgs4ResolveArgs3(r,e,s,o)},spread2=r=>function([e,s]){return r(e,s)},promiseAll=Promise.all.bind(Promise),leftResolverRightResolverCompare=function(r,e,s,o){const l=s(...r),t=o(...r);return isPromise(l)||isPromise(t)?promiseAll([l,t]).then(spread2(e)):e(l,t)},leftResolverRightValueCompare=function(r,e,s,o){const l=s(...r);return isPromise(l)||isPromise(o)?promiseAll([l,o]).then(spread2(e)):e(l,o)},leftValueRightResolverCompare=function(r,e,s,o){const l=o(...r);return isPromise(s)||isPromise(l)?promiseAll([s,l]).then(spread2(e)):e(s,l)},ComparisonOperator=r=>function(...e){const s=e.pop(),o=e.pop(),l="function"==typeof o,t="function"==typeof s;return l&&t?0==e.length?curryArgs4(leftResolverRightResolverCompare,__,r,o,s):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightResolverCompare,__,r,o,s)):leftResolverRightResolverCompare(e,r,o,s):l?0==e.length?curryArgs4(leftResolverRightValueCompare,__,r,o,s):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightValueCompare,__,r,o,s)):leftResolverRightValueCompare(e,r,o,s):t?0==e.length?curryArgs4(leftValueRightResolverCompare,__,r,o,s):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftValueRightResolverCompare,__,r,o,s)):leftValueRightResolverCompare(e,r,o,s):isPromise(o)||isPromise(s)?promiseAll([o,s]).then(spread2(r)):r(o,s)},lessThanOrEqual=(r,e)=>r<=e,lte=ComparisonOperator(lessThanOrEqual);export default lte;
|