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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
const __ = Symbol.for('placeholder')
|
|
8
|
+
|
|
9
|
+
// argument resolver for curry2
|
|
10
|
+
const curry2ResolveArg0 = (
|
|
11
|
+
baseFunc, arg1,
|
|
12
|
+
) => function arg0Resolver(arg0) {
|
|
13
|
+
return baseFunc(arg0, arg1)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// argument resolver for curry2
|
|
17
|
+
const curry2ResolveArg1 = (
|
|
18
|
+
baseFunc, arg0,
|
|
19
|
+
) => function arg1Resolver(arg1) {
|
|
20
|
+
return baseFunc(arg0, arg1)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
24
|
+
return arg0 == __
|
|
25
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
26
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
30
|
+
|
|
31
|
+
const funcApply = (func, args) => func(...args)
|
|
32
|
+
|
|
33
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
34
|
+
|
|
35
|
+
const areAnyValuesPromises = function (values) {
|
|
36
|
+
const length = values.length
|
|
37
|
+
let index = -1
|
|
38
|
+
while (++index < length) {
|
|
39
|
+
const value = values[index]
|
|
40
|
+
if (isPromise(value)) {
|
|
41
|
+
return true
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const funcConcat = (
|
|
48
|
+
funcA, funcB,
|
|
49
|
+
) => function pipedFunction(...args) {
|
|
50
|
+
const intermediate = funcA(...args)
|
|
51
|
+
return isPromise(intermediate)
|
|
52
|
+
? intermediate.then(funcB)
|
|
53
|
+
: funcB(intermediate)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const compose = function (...args) {
|
|
57
|
+
const funcs = args.pop()
|
|
58
|
+
const composition = funcs.reduceRight(funcConcat)
|
|
59
|
+
|
|
60
|
+
if (args.length == 0) {
|
|
61
|
+
return composition
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (areAnyValuesPromises(args)) {
|
|
65
|
+
return promiseAll(args).then(curry2(funcApply, composition, __))
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return composition(...args)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export default compose
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
const __=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)},promiseAll=Promise.all.bind(Promise),funcApply=(r,e)=>r(...e),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},funcConcat=(r,e)=>function(...n){const o=r(...n);return isPromise(o)?o.then(e):e(o)},compose=function(...r){const e=r.pop().reduceRight(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 compose;
|
package/dist/compose.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
(function (root, compose) {
|
|
9
|
+
if (typeof module == 'object') (module.exports = compose) // CommonJS
|
|
10
|
+
else if (typeof define == 'function') define(() => compose) // AMD
|
|
11
|
+
else (root.compose = compose) // Browser
|
|
12
|
+
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
|
+
const __ = Symbol.for('placeholder')
|
|
14
|
+
|
|
15
|
+
// argument resolver for curry2
|
|
16
|
+
const curry2ResolveArg0 = (
|
|
17
|
+
baseFunc, arg1,
|
|
18
|
+
) => function arg0Resolver(arg0) {
|
|
19
|
+
return baseFunc(arg0, arg1)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// argument resolver for curry2
|
|
23
|
+
const curry2ResolveArg1 = (
|
|
24
|
+
baseFunc, arg0,
|
|
25
|
+
) => function arg1Resolver(arg1) {
|
|
26
|
+
return baseFunc(arg0, arg1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
30
|
+
return arg0 == __
|
|
31
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
32
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
36
|
+
|
|
37
|
+
const funcApply = (func, args) => func(...args)
|
|
38
|
+
|
|
39
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
40
|
+
|
|
41
|
+
const areAnyValuesPromises = function (values) {
|
|
42
|
+
const length = values.length
|
|
43
|
+
let index = -1
|
|
44
|
+
while (++index < length) {
|
|
45
|
+
const value = values[index]
|
|
46
|
+
if (isPromise(value)) {
|
|
47
|
+
return true
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const funcConcat = (
|
|
54
|
+
funcA, funcB,
|
|
55
|
+
) => function pipedFunction(...args) {
|
|
56
|
+
const intermediate = funcA(...args)
|
|
57
|
+
return isPromise(intermediate)
|
|
58
|
+
? intermediate.then(funcB)
|
|
59
|
+
: funcB(intermediate)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const compose = function (...args) {
|
|
63
|
+
const funcs = args.pop()
|
|
64
|
+
const composition = funcs.reduceRight(funcConcat)
|
|
65
|
+
|
|
66
|
+
if (args.length == 0) {
|
|
67
|
+
return composition
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (areAnyValuesPromises(args)) {
|
|
71
|
+
return promiseAll(args).then(curry2(funcApply, composition, __))
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return composition(...args)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return compose
|
|
78
|
+
}())))
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.compose=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=Promise.all.bind(Promise),e=(n,t)=>n(...t),o=n=>null!=n&&"function"==typeof n.then,r=(n,t)=>function(...e){const r=n(...e);return o(r)?r.then(t):t(r)};return function(...u){const c=u.pop().reduceRight(r);return 0==u.length?c:function(n){const t=n.length;let e=-1;for(;++e<t;){const t=n[e];if(o(t))return!0}return!1}(u)?t(u).then((i=e,l=n,(f=c)==n?((n,t)=>function(e){return n(e,t)})(i,l):((n,t)=>function(e){return n(t,e)})(i,f))):c(...u);var i,f,l}}());
|
package/dist/compose.mjs
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
const __ = Symbol.for('placeholder')
|
|
8
|
+
|
|
9
|
+
// argument resolver for curry2
|
|
10
|
+
const curry2ResolveArg0 = (
|
|
11
|
+
baseFunc, arg1,
|
|
12
|
+
) => function arg0Resolver(arg0) {
|
|
13
|
+
return baseFunc(arg0, arg1)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// argument resolver for curry2
|
|
17
|
+
const curry2ResolveArg1 = (
|
|
18
|
+
baseFunc, arg0,
|
|
19
|
+
) => function arg1Resolver(arg1) {
|
|
20
|
+
return baseFunc(arg0, arg1)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
24
|
+
return arg0 == __
|
|
25
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
26
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
30
|
+
|
|
31
|
+
const funcApply = (func, args) => func(...args)
|
|
32
|
+
|
|
33
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
34
|
+
|
|
35
|
+
const areAnyValuesPromises = function (values) {
|
|
36
|
+
const length = values.length
|
|
37
|
+
let index = -1
|
|
38
|
+
while (++index < length) {
|
|
39
|
+
const value = values[index]
|
|
40
|
+
if (isPromise(value)) {
|
|
41
|
+
return true
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return false
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const funcConcat = (
|
|
48
|
+
funcA, funcB,
|
|
49
|
+
) => function pipedFunction(...args) {
|
|
50
|
+
const intermediate = funcA(...args)
|
|
51
|
+
return isPromise(intermediate)
|
|
52
|
+
? intermediate.then(funcB)
|
|
53
|
+
: funcB(intermediate)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const compose = function (...args) {
|
|
57
|
+
const funcs = args.pop()
|
|
58
|
+
const composition = funcs.reduceRight(funcConcat)
|
|
59
|
+
|
|
60
|
+
if (args.length == 0) {
|
|
61
|
+
return composition
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (areAnyValuesPromises(args)) {
|
|
65
|
+
return promiseAll(args).then(curry2(funcApply, composition, __))
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return composition(...args)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export default compose
|
package/dist/curry.es.js
CHANGED
package/dist/curry.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
7
|
const __=Symbol.for("placeholder"),_curryArity=(r,t,u)=>function(...n){const y=u.length,c=n.length,e=[];let i=-1,o=-1,f=0;for(;++i<y;){const y=u[i];if(y==__&&(o+=1)<c){const r=n[o];r==__&&(f+=1),e.push(r)}else e.push(y);if(e.length==r)return 0==f?t(...e):curryArity(r,t,e)}for(;++o<c;){const u=n[o];if(u==__&&(f+=1),e.push(u),e.length==r)return 0==f?t(...e):curryArity(r,t,e)}return curryArity(r,t,e)},curryArity=function(r,t,u){const n=u.length;if(n<r)return _curryArity(r,t,u);let y=-1;for(;++y<n;){if(u[y]==__)return _curryArity(r,t,u)}return t(...u)},curry=(r,...t)=>curryArity(r.length,r,t);curry.arity=function(r,t,...u){return curryArity(r,t,u)};export default curry;
|
package/dist/curry.js
CHANGED
package/dist/curry.min.js
CHANGED
package/dist/curry.mjs
CHANGED
package/dist/eq.es.js
CHANGED
|
@@ -1,86 +1,209 @@
|
|
|
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
|
-
|
|
17
|
-
|
|
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
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
const __ = Symbol.for('placeholder')
|
|
21
23
|
|
|
22
|
-
// argument resolver for
|
|
23
|
-
const
|
|
24
|
-
baseFunc, arg1,
|
|
24
|
+
// argument resolver for curry4
|
|
25
|
+
const curry4ResolveArg0 = (
|
|
26
|
+
baseFunc, arg1, arg2, arg3,
|
|
25
27
|
) => function arg0Resolver(arg0) {
|
|
26
|
-
return baseFunc(arg0, arg1)
|
|
28
|
+
return baseFunc(arg0, arg1, arg2, arg3)
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
// argument resolver for
|
|
30
|
-
const
|
|
31
|
-
baseFunc, arg0,
|
|
31
|
+
// argument resolver for curry4
|
|
32
|
+
const curry4ResolveArg1 = (
|
|
33
|
+
baseFunc, arg0, arg2, arg3,
|
|
32
34
|
) => function arg1Resolver(arg1) {
|
|
33
|
-
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)
|
|
34
91
|
}
|
|
35
92
|
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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)
|
|
40
104
|
}
|
|
41
105
|
|
|
42
|
-
const
|
|
106
|
+
const spread2 = func => function spreading2([arg0, arg1]) {
|
|
107
|
+
return func(arg0, arg1)
|
|
108
|
+
}
|
|
43
109
|
|
|
44
|
-
const
|
|
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)
|
|
124
|
+
}
|
|
125
|
+
|
|
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)
|
|
135
|
+
}
|
|
136
|
+
|
|
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
|
+
}
|
|
147
|
+
|
|
148
|
+
// ComparisonOperator(comparator function) -> operator function
|
|
149
|
+
const ComparisonOperator = comparator => function operator(...args) {
|
|
150
|
+
const right = args.pop()
|
|
151
|
+
const left = args.pop()
|
|
45
152
|
const isLeftResolver = typeof left == 'function',
|
|
46
153
|
isRightResolver = typeof right == 'function'
|
|
47
154
|
|
|
48
155
|
if (isLeftResolver && isRightResolver) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return leftResolve.then(curry2(sameValueZero, __, rightResolve))
|
|
59
|
-
} else if (isRightPromise) {
|
|
60
|
-
return rightResolve.then(curry2(sameValueZero, leftResolve, __))
|
|
61
|
-
}
|
|
62
|
-
return sameValueZero(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
|
+
))
|
|
63
165
|
}
|
|
166
|
+
return leftResolverRightResolverCompare(args, comparator, left, right)
|
|
64
167
|
}
|
|
65
168
|
|
|
66
169
|
if (isLeftResolver) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
+
))
|
|
72
179
|
}
|
|
180
|
+
return leftResolverRightValueCompare(args, comparator, left, right)
|
|
73
181
|
}
|
|
182
|
+
|
|
74
183
|
if (isRightResolver) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
+
))
|
|
80
193
|
}
|
|
194
|
+
return leftValueRightResolverCompare(args, comparator, left, right)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (isPromise(left) || isPromise(right)) {
|
|
198
|
+
return promiseAll([left, right]).then(spread2(comparator))
|
|
81
199
|
}
|
|
200
|
+
return comparator(left, right)
|
|
201
|
+
}
|
|
82
202
|
|
|
83
|
-
|
|
203
|
+
const equals = function (left, right) {
|
|
204
|
+
return left == right
|
|
84
205
|
}
|
|
85
206
|
|
|
207
|
+
const eq = ComparisonOperator(equals)
|
|
208
|
+
|
|
86
209
|
export default eq
|
package/dist/eq.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 o=-1;for(;++o<e;){const e=r[o];if(isPromise(e))return!0}return!1},__=Symbol.for("placeholder"),curry4ResolveArg0=(r,e,o,s)=>function(t){return r(t,e,o,s)},curry4ResolveArg1=(r,e,o,s)=>function(t){return r(e,t,o,s)},curry4ResolveArg2=(r,e,o,s)=>function(t){return r(e,o,t,s)},curry4ResolveArg3=(r,e,o,s)=>function(t){return r(e,o,s,t)},curry4=function(r,e,o,s,t){return e==__?curry4ResolveArg0(r,o,s,t):o==__?curry4ResolveArg1(r,e,s,t):s==__?curry4ResolveArg2(r,e,o,t):curry4ResolveArg3(r,e,o,s)},curryArgs4ResolveArgs0=(r,e,o,s)=>function(...t){return r(t,e,o,s)},curryArgs4ResolveArgs1=(r,e,o,s)=>function(...t){return r(e,t,o,s)},curryArgs4ResolveArgs2=(r,e,o,s)=>function(...t){return r(e,o,t,s)},curryArgs4ResolveArgs3=(r,e,o,s)=>function(...t){return r(e,o,s,t)},curryArgs4=function(r,e,o,s,t){return e==__?curryArgs4ResolveArgs0(r,o,s,t):o==__?curryArgs4ResolveArgs1(r,e,s,t):s==__?curryArgs4ResolveArgs2(r,e,o,t):curryArgs4ResolveArgs3(r,e,o,s)},spread2=r=>function([e,o]){return r(e,o)},promiseAll=Promise.all.bind(Promise),leftResolverRightResolverCompare=function(r,e,o,s){const t=o(...r),l=s(...r);return isPromise(t)||isPromise(l)?promiseAll([t,l]).then(spread2(e)):e(t,l)},leftResolverRightValueCompare=function(r,e,o,s){const t=o(...r);return isPromise(t)||isPromise(s)?promiseAll([t,s]).then(spread2(e)):e(t,s)},leftValueRightResolverCompare=function(r,e,o,s){const t=s(...r);return isPromise(o)||isPromise(t)?promiseAll([o,t]).then(spread2(e)):e(o,t)},ComparisonOperator=r=>function(...e){const o=e.pop(),s=e.pop(),t="function"==typeof s,l="function"==typeof o;return t&&l?0==e.length?curryArgs4(leftResolverRightResolverCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightResolverCompare,__,r,s,o)):leftResolverRightResolverCompare(e,r,s,o):t?0==e.length?curryArgs4(leftResolverRightValueCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightValueCompare,__,r,s,o)):leftResolverRightValueCompare(e,r,s,o):l?0==e.length?curryArgs4(leftValueRightResolverCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftValueRightResolverCompare,__,r,s,o)):leftValueRightResolverCompare(e,r,s,o):isPromise(s)||isPromise(o)?promiseAll([s,o]).then(spread2(r)):r(s,o)},equals=function(r,e){return r==e},eq=ComparisonOperator(equals);export default eq;
|