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/lt.js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
const
|
|
2
|
-
const isPromise = require('./_internal/isPromise')
|
|
3
|
-
const promiseAll = require('./_internal/promiseAll')
|
|
1
|
+
const ComparisonOperator = require('./_internal/ComparisonOperator')
|
|
4
2
|
const lessThan = require('./_internal/lessThan')
|
|
5
|
-
const curry2 = require('./_internal/curry2')
|
|
6
|
-
const always = require('./_internal/always')
|
|
7
|
-
const __ = require('./_internal/placeholder')
|
|
8
3
|
|
|
9
4
|
/**
|
|
10
5
|
* @name lt
|
|
11
6
|
*
|
|
12
7
|
* @synopsis
|
|
13
8
|
* ```coffeescript [specscript]
|
|
14
|
-
* lt(leftValue any, rightValue any) -> boolean
|
|
15
|
-
*
|
|
16
|
-
* lt(
|
|
17
|
-
* lt(
|
|
9
|
+
* lt(leftValue Promise|any, rightValue Promise|any) -> boolean
|
|
10
|
+
*
|
|
11
|
+
* lt(leftValue Promise|any, right function)(...args) -> Promise|boolean
|
|
12
|
+
* lt(...args, leftValue Promise|any, right function) -> Promise|boolean
|
|
13
|
+
*
|
|
14
|
+
* lt(left function, rightValue Promise|any)(...args) -> Promise|boolean
|
|
15
|
+
* lt(...args, left function, rightValue Promise|any) -> Promise|boolean
|
|
16
|
+
*
|
|
17
|
+
* lt(left function, right function)(...args) -> Promise|boolean
|
|
18
|
+
* lt(...args, left function, right function) -> Promise|boolean
|
|
18
19
|
* ```
|
|
19
20
|
*
|
|
20
21
|
* @description
|
|
21
|
-
* Test if a
|
|
22
|
-
*
|
|
23
|
-
* If both arguments are values, `lt` eagerly computes and returns a boolean value.
|
|
22
|
+
* Test if a value is less than (`<`) another value.
|
|
24
23
|
*
|
|
25
24
|
* ```javascript [playground]
|
|
26
25
|
* console.log(lt(1, 3)) // true
|
|
@@ -28,60 +27,18 @@ const __ = require('./_internal/placeholder')
|
|
|
28
27
|
* console.log(lt(4, 3)) // false
|
|
29
28
|
* ```
|
|
30
29
|
*
|
|
31
|
-
* If
|
|
32
|
-
*
|
|
33
|
-
* If only one argument is a function, `lt` still returns a function that resolves its arguments by the argument resolver, treating the value (non function) argument as an already resolved value for comparison.
|
|
30
|
+
* If either of the two values are resolver functions, `lt` returns a function that resolves the values to compare from its arguments.
|
|
34
31
|
*
|
|
35
32
|
* ```javascript [playground]
|
|
36
33
|
* const identity = value => value
|
|
37
34
|
*
|
|
38
35
|
* const isLessThan3 = lt(identity, 3)
|
|
39
36
|
*
|
|
40
|
-
* console.log(isLessThan3(1)
|
|
41
|
-
* console.log(isLessThan3(3)
|
|
42
|
-
* console.log(isLessThan3(5)
|
|
37
|
+
* console.log(isLessThan3(1)) // true
|
|
38
|
+
* console.log(isLessThan3(3)) // false
|
|
39
|
+
* console.log(isLessThan3(5)) // false
|
|
43
40
|
* ```
|
|
44
41
|
*/
|
|
45
|
-
const lt =
|
|
46
|
-
const isLeftResolver = typeof left == 'function',
|
|
47
|
-
isRightResolver = typeof right == 'function'
|
|
48
|
-
|
|
49
|
-
if (isLeftResolver && isRightResolver) {
|
|
50
|
-
return function lessThanBy(value) {
|
|
51
|
-
const leftResolve = left(value),
|
|
52
|
-
rightResolve = right(value)
|
|
53
|
-
const isLeftPromise = isPromise(leftResolve),
|
|
54
|
-
isRightPromise = isPromise(rightResolve)
|
|
55
|
-
if (isLeftPromise && isRightPromise) {
|
|
56
|
-
return promiseAll(
|
|
57
|
-
[leftResolve, rightResolve]).then(spread2(lessThan))
|
|
58
|
-
} else if (isLeftPromise) {
|
|
59
|
-
return leftResolve.then(curry2(lessThan, __, rightResolve))
|
|
60
|
-
} else if (isRightPromise) {
|
|
61
|
-
return rightResolve.then(curry2(lessThan, leftResolve, __))
|
|
62
|
-
}
|
|
63
|
-
return leftResolve < rightResolve
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (isLeftResolver) {
|
|
68
|
-
return function lessThanBy(value) {
|
|
69
|
-
const leftResolve = left(value)
|
|
70
|
-
return isPromise(leftResolve)
|
|
71
|
-
? leftResolve.then(curry2(lessThan, __, right))
|
|
72
|
-
: leftResolve < right
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (isRightResolver) {
|
|
76
|
-
return function lessThanBy(value) {
|
|
77
|
-
const rightResolve = right(value)
|
|
78
|
-
return isPromise(rightResolve)
|
|
79
|
-
? rightResolve.then(curry2(lessThan, left, __))
|
|
80
|
-
: left < rightResolve
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return left < right
|
|
85
|
-
}
|
|
42
|
+
const lt = ComparisonOperator(lessThan)
|
|
86
43
|
|
|
87
44
|
module.exports = lt
|
package/lte.js
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
const
|
|
2
|
-
const isPromise = require('./_internal/isPromise')
|
|
3
|
-
const promiseAll = require('./_internal/promiseAll')
|
|
1
|
+
const ComparisonOperator = require('./_internal/ComparisonOperator')
|
|
4
2
|
const lessThanOrEqual = require('./_internal/lessThanOrEqual')
|
|
5
|
-
const curry2 = require('./_internal/curry2')
|
|
6
|
-
const always = require('./_internal/always')
|
|
7
|
-
const __ = require('./_internal/placeholder')
|
|
8
3
|
|
|
9
4
|
/**
|
|
10
5
|
* @name lte
|
|
11
6
|
*
|
|
12
7
|
* @synopsis
|
|
13
8
|
* ```coffeescript [specscript]
|
|
14
|
-
* lte(leftValue any, rightValue any) -> boolean
|
|
15
|
-
*
|
|
16
|
-
* lte(
|
|
17
|
-
* lte(
|
|
9
|
+
* lte(leftValue Promise|any, rightValue Promise|any) -> boolean
|
|
10
|
+
*
|
|
11
|
+
* lte(leftValue Promise|any, right function)(...args) -> Promise|boolean
|
|
12
|
+
* lte(...args, leftValue Promise|any, right function) -> Promise|boolean
|
|
13
|
+
*
|
|
14
|
+
* lte(left function, rightValue Promise|any)(...args) -> Promise|boolean
|
|
15
|
+
* lte(...args, left function, rightValue Promise|any) -> Promise|boolean
|
|
16
|
+
*
|
|
17
|
+
* lte(left function, right function)(...args) -> Promise|boolean
|
|
18
|
+
* lte(...args, left function, right function) -> Promise|boolean
|
|
18
19
|
* ```
|
|
19
20
|
*
|
|
20
21
|
* @description
|
|
21
|
-
* Test if a
|
|
22
|
-
*
|
|
23
|
-
* If both arguments are values, `lte` eagerly computes and returns a boolean value.
|
|
22
|
+
* Test if a value is less than or equal (`<=`) to another value.
|
|
24
23
|
*
|
|
25
24
|
* ```javascript [playground]
|
|
26
25
|
* console.log(lte(1, 3)) // true
|
|
@@ -28,9 +27,7 @@ const __ = require('./_internal/placeholder')
|
|
|
28
27
|
* console.log(lte(4, 3)) // false
|
|
29
28
|
* ```
|
|
30
29
|
*
|
|
31
|
-
* If
|
|
32
|
-
*
|
|
33
|
-
* If only one argument is a function, `lte` still returns a function that resolves its arguments by the argument resolver, treating the value (non function) argument as an already resolved value for comparison.
|
|
30
|
+
* If either of the two values are resolver functions, `lte` returns a function that resolves the values to compare from its arguments.
|
|
34
31
|
*
|
|
35
32
|
* ```javascript [playground]
|
|
36
33
|
* const identity = value => value
|
|
@@ -42,46 +39,6 @@ const __ = require('./_internal/placeholder')
|
|
|
42
39
|
* console.log(isLessThanOrEqualTo3(5), false)
|
|
43
40
|
* ```
|
|
44
41
|
*/
|
|
45
|
-
const lte =
|
|
46
|
-
const isLeftResolver = typeof left == 'function',
|
|
47
|
-
isRightResolver = typeof right == 'function'
|
|
48
|
-
|
|
49
|
-
if (isLeftResolver && isRightResolver) {
|
|
50
|
-
return function lessThanOrEqualBy(value) {
|
|
51
|
-
const leftResolve = left(value),
|
|
52
|
-
rightResolve = right(value)
|
|
53
|
-
const isLeftPromise = isPromise(leftResolve),
|
|
54
|
-
isRightPromise = isPromise(rightResolve)
|
|
55
|
-
if (isLeftPromise && isRightPromise) {
|
|
56
|
-
return promiseAll(
|
|
57
|
-
[leftResolve, rightResolve]).then(spread2(lessThanOrEqual))
|
|
58
|
-
} else if (isLeftPromise) {
|
|
59
|
-
return leftResolve.then(curry2(lessThanOrEqual, __, rightResolve))
|
|
60
|
-
} else if (isRightPromise) {
|
|
61
|
-
return rightResolve.then(curry2(lessThanOrEqual, leftResolve, __))
|
|
62
|
-
}
|
|
63
|
-
return leftResolve <= rightResolve
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (isLeftResolver) {
|
|
68
|
-
return function lessThanOrEqualBy(value) {
|
|
69
|
-
const leftResolve = left(value)
|
|
70
|
-
return isPromise(leftResolve)
|
|
71
|
-
? leftResolve.then(curry2(lessThanOrEqual, __, right))
|
|
72
|
-
: leftResolve <= right
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
if (isRightResolver) {
|
|
76
|
-
return function lessThanOrEqualBy(value) {
|
|
77
|
-
const rightResolve = right(value)
|
|
78
|
-
return isPromise(rightResolve)
|
|
79
|
-
? rightResolve.then(curry2(lessThanOrEqual, left, __))
|
|
80
|
-
: left <= rightResolve
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
return left <= right
|
|
85
|
-
}
|
|
42
|
+
const lte = ComparisonOperator(lessThanOrEqual)
|
|
86
43
|
|
|
87
44
|
module.exports = lte
|
package/map.js
CHANGED
|
@@ -1,23 +1,17 @@
|
|
|
1
|
+
const isPromise = require('./_internal/isPromise')
|
|
1
2
|
const MappingIterator = require('./_internal/MappingIterator')
|
|
2
3
|
const MappingAsyncIterator = require('./_internal/MappingAsyncIterator')
|
|
3
4
|
const __ = require('./_internal/placeholder')
|
|
4
5
|
const curry2 = require('./_internal/curry2')
|
|
5
6
|
const isArray = require('./_internal/isArray')
|
|
6
7
|
const isObject = require('./_internal/isObject')
|
|
7
|
-
const isGeneratorFunction = require('./_internal/isGeneratorFunction')
|
|
8
|
-
const isAsyncGeneratorFunction = require('./_internal/isAsyncGeneratorFunction')
|
|
9
8
|
const arrayMap = require('./_internal/arrayMap')
|
|
10
|
-
const generatorFunctionMap = require('./_internal/generatorFunctionMap')
|
|
11
|
-
const asyncGeneratorFunctionMap = require('./_internal/asyncGeneratorFunctionMap')
|
|
12
|
-
const reducerMap = require('./_internal/reducerMap')
|
|
13
9
|
const stringMap = require('./_internal/stringMap')
|
|
14
10
|
const setMap = require('./_internal/setMap')
|
|
15
11
|
const mapMap = require('./_internal/mapMap')
|
|
16
12
|
const objectMap = require('./_internal/objectMap')
|
|
17
13
|
const arrayMapSeries = require('./_internal/arrayMapSeries')
|
|
18
14
|
const arrayMapPool = require('./_internal/arrayMapPool')
|
|
19
|
-
const arrayMapWithIndex = require('./_internal/arrayMapWithIndex')
|
|
20
|
-
const objectMapOwn = require('./_internal/objectMapOwn')
|
|
21
15
|
const objectMapEntries = require('./_internal/objectMapEntries')
|
|
22
16
|
const mapMapEntries = require('./_internal/mapMapEntries')
|
|
23
17
|
const symbolIterator = require('./_internal/symbolIterator')
|
|
@@ -69,15 +63,6 @@ const _map = function (value, mapper) {
|
|
|
69
63
|
if (isArray(value)) {
|
|
70
64
|
return arrayMap(value, mapper)
|
|
71
65
|
}
|
|
72
|
-
if (typeof value == 'function') {
|
|
73
|
-
if (isGeneratorFunction(value)) {
|
|
74
|
-
return generatorFunctionMap(value, mapper)
|
|
75
|
-
}
|
|
76
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
77
|
-
return asyncGeneratorFunctionMap(value, mapper)
|
|
78
|
-
}
|
|
79
|
-
return reducerMap(value, mapper)
|
|
80
|
-
}
|
|
81
66
|
if (value == null) {
|
|
82
67
|
return value
|
|
83
68
|
}
|
|
@@ -285,10 +270,15 @@ const _map = function (value, mapper) {
|
|
|
285
270
|
|
|
286
271
|
const map = (...args) => {
|
|
287
272
|
const mapper = args.pop()
|
|
288
|
-
if (args.length
|
|
289
|
-
return _map
|
|
273
|
+
if (args.length == 0) {
|
|
274
|
+
return curry2(_map, __, mapper)
|
|
290
275
|
}
|
|
291
|
-
|
|
276
|
+
|
|
277
|
+
const collection = args[0]
|
|
278
|
+
if (isPromise(collection)) {
|
|
279
|
+
return collection.then(curry2(_map, __, mapper))
|
|
280
|
+
}
|
|
281
|
+
return _map(collection, mapper)
|
|
292
282
|
}
|
|
293
283
|
|
|
294
284
|
/**
|
|
@@ -407,79 +397,4 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
|
|
407
397
|
throw new TypeError(`${value} is not an Array`)
|
|
408
398
|
}
|
|
409
399
|
|
|
410
|
-
/**
|
|
411
|
-
* @name map.withIndex
|
|
412
|
-
*
|
|
413
|
-
* @synopsis
|
|
414
|
-
* ```coffeescript [specscript]
|
|
415
|
-
* map.withIndex(
|
|
416
|
-
* indexedMapperFunc (item any, index numberl, array Array)=>Promise|any,
|
|
417
|
-
* )(array Array) -> result Promise|Array
|
|
418
|
-
* ```
|
|
419
|
-
*
|
|
420
|
-
* @description
|
|
421
|
-
* `map` with an indexed mapper.
|
|
422
|
-
*
|
|
423
|
-
* ```javascript [playground]
|
|
424
|
-
* const range = length =>
|
|
425
|
-
* map.withIndex((_, index) => index + 1)(Array(length))
|
|
426
|
-
*
|
|
427
|
-
* console.log(range(5)) // [1, 2, 3, 4, 5]
|
|
428
|
-
* ```
|
|
429
|
-
*
|
|
430
|
-
* @execution concurrent
|
|
431
|
-
*
|
|
432
|
-
* @related
|
|
433
|
-
* map, filter.withIndex
|
|
434
|
-
*
|
|
435
|
-
* @DEPRECATED
|
|
436
|
-
*/
|
|
437
|
-
map.withIndex = mapper => function mappingWithIndex(value) {
|
|
438
|
-
if (isArray(value)) {
|
|
439
|
-
return arrayMapWithIndex(value, mapper)
|
|
440
|
-
}
|
|
441
|
-
throw new TypeError(`${value} is not an Array`)
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/**
|
|
445
|
-
* @name map.own
|
|
446
|
-
*
|
|
447
|
-
* @synopsis
|
|
448
|
-
* ```coffeescript [specscript]
|
|
449
|
-
* map.own(
|
|
450
|
-
* mapperFunc (item any)=>Promise|any,
|
|
451
|
-
* )(object Object) -> result Promise|Object
|
|
452
|
-
* ```
|
|
453
|
-
*
|
|
454
|
-
* @description
|
|
455
|
-
* Applies a mapper function concurrently to an object's own values, returning an object of results. Mapper may be asynchronous.
|
|
456
|
-
* Guards mapping by validating that each property is the object's own and not inherited from the prototype chain.
|
|
457
|
-
*
|
|
458
|
-
* ```javascript [playground]
|
|
459
|
-
* const Person = function (name) {
|
|
460
|
-
* this.name = name
|
|
461
|
-
* }
|
|
462
|
-
*
|
|
463
|
-
* Person.prototype.greet = function () {}
|
|
464
|
-
*
|
|
465
|
-
* const david = new Person('david')
|
|
466
|
-
* david.a = 1
|
|
467
|
-
* david.b = 2
|
|
468
|
-
* david.c = 3
|
|
469
|
-
*
|
|
470
|
-
* const square = number => number ** 2
|
|
471
|
-
* console.log(
|
|
472
|
-
* map.own(square)(david)
|
|
473
|
-
* ) // { name: NaN, a: 1, b: 4, c: 9 }
|
|
474
|
-
* ```
|
|
475
|
-
*
|
|
476
|
-
* @DEPRECATED
|
|
477
|
-
*/
|
|
478
|
-
map.own = mapper => function mappingOwnProperties(value) {
|
|
479
|
-
if (isObject(value) && !isArray(value)) {
|
|
480
|
-
return objectMapOwn(value, mapper)
|
|
481
|
-
}
|
|
482
|
-
throw new TypeError(`${value} is not an Object`)
|
|
483
|
-
}
|
|
484
|
-
|
|
485
400
|
module.exports = map
|
package/memory-usage/reduce.js
CHANGED
|
@@ -15,7 +15,7 @@ const asyncGenerator = async function*(i) {
|
|
|
15
15
|
yield 3
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
setImmediate(async () => {
|
|
19
19
|
let i = 0, maxHeapUsed = 0
|
|
20
20
|
while (i < iterations) {
|
|
21
21
|
const p = reduce((a, b) => a + b, 0)(asyncGenerator(i))
|
|
@@ -35,6 +35,6 @@ void (async () => {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
console.log('maxHeapUsed (MiB)', maxHeapUsed / 1024 / 1024)
|
|
38
|
-
})
|
|
38
|
+
})
|
|
39
39
|
|
|
40
40
|
// https://stackoverflow.com/questions/62336381/is-this-promise-cancellation-implementation-for-reducing-an-async-iterable-on-th
|
package/not.js
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
const areAnyValuesPromises = require('./_internal/areAnyValuesPromises')
|
|
1
2
|
const isPromise = require('./_internal/isPromise')
|
|
3
|
+
const promiseAll = require('./_internal/promiseAll')
|
|
4
|
+
const __ = require('./_internal/placeholder')
|
|
5
|
+
const curry2 = require('./_internal/curry2')
|
|
6
|
+
const curryArgs2 = require('./_internal/curryArgs2')
|
|
2
7
|
|
|
3
|
-
//
|
|
4
|
-
const
|
|
8
|
+
// negate(value boolean) -> inverse boolean
|
|
9
|
+
const negate = value => !value
|
|
10
|
+
|
|
11
|
+
// _not(args Array, predicate function)
|
|
12
|
+
const _not = function (args, predicate) {
|
|
13
|
+
const boolean = predicate(...args)
|
|
14
|
+
return isPromise(boolean) ? boolean.then(negate) : !boolean
|
|
15
|
+
}
|
|
5
16
|
|
|
6
17
|
/**
|
|
7
18
|
* @name not
|
|
@@ -10,7 +21,9 @@ const _not = value => !value
|
|
|
10
21
|
* ```coffeescript [specscript]
|
|
11
22
|
* not(value boolean) -> negated boolean
|
|
12
23
|
*
|
|
13
|
-
* not(predicate function)
|
|
24
|
+
* not(...args, predicate function) -> negated boolean
|
|
25
|
+
*
|
|
26
|
+
* not(predicate function)(...args) -> negated boolean
|
|
14
27
|
* ```
|
|
15
28
|
*
|
|
16
29
|
* @description
|
|
@@ -33,50 +46,19 @@ const _not = value => !value
|
|
|
33
46
|
* ) // false
|
|
34
47
|
* ```
|
|
35
48
|
*/
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
49
|
+
|
|
50
|
+
const not = function (...args) {
|
|
51
|
+
const predicateOrValue = args.pop()
|
|
52
|
+
if (typeof predicateOrValue == 'function') {
|
|
53
|
+
if (args.length == 0) {
|
|
54
|
+
return curryArgs2(_not, __, predicateOrValue)
|
|
41
55
|
}
|
|
56
|
+
if (areAnyValuesPromises(args)) {
|
|
57
|
+
return promiseAll(args).then(curry2(_not, __, predicateOrValue))
|
|
58
|
+
}
|
|
59
|
+
return _not(args, predicateOrValue)
|
|
42
60
|
}
|
|
43
|
-
return !
|
|
61
|
+
return !predicateOrValue
|
|
44
62
|
}
|
|
45
63
|
|
|
46
|
-
/**
|
|
47
|
-
* @name notSync
|
|
48
|
-
*
|
|
49
|
-
* @synopsis
|
|
50
|
-
* ```coffeescript [specscript]
|
|
51
|
-
* notSync(func ...any=>boolean) -> negated ...any=>boolean
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
const notSync = func => function notSync(...args) {
|
|
55
|
-
return !func(...args)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* @name not.sync
|
|
60
|
-
*
|
|
61
|
-
* @synopsis
|
|
62
|
-
* ```coffeescript [specscript]
|
|
63
|
-
* var args ...any,
|
|
64
|
-
* syncPredicate ...args=>boolean
|
|
65
|
-
*
|
|
66
|
-
* not.sync(syncPredicate)(...args) -> boolean
|
|
67
|
-
* ```
|
|
68
|
-
*
|
|
69
|
-
* @description
|
|
70
|
-
* `not` without promise handling.
|
|
71
|
-
*
|
|
72
|
-
* ```javascript [playground]
|
|
73
|
-
* const isOdd = number => number % 2 == 1
|
|
74
|
-
*
|
|
75
|
-
* console.log(
|
|
76
|
-
* not.sync(isOdd)(2),
|
|
77
|
-
* ) // true
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
not.sync = notSync
|
|
81
|
-
|
|
82
64
|
module.exports = not
|
package/omit.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const isPromise = require('./_internal/isPromise')
|
|
1
2
|
const deleteByPath = require('./_internal/deleteByPath')
|
|
2
3
|
const copyDeep = require('./_internal/copyDeep')
|
|
3
4
|
const curry2 = require('./_internal/curry2')
|
|
@@ -66,6 +67,9 @@ const omit = function (arg0, arg1) {
|
|
|
66
67
|
if (arg1 == null) {
|
|
67
68
|
return curry2(_omit, __, arg0)
|
|
68
69
|
}
|
|
70
|
+
if (isPromise(arg0)) {
|
|
71
|
+
return arg0.then(curry2(_omit, __, arg1))
|
|
72
|
+
}
|
|
69
73
|
return _omit(arg0, arg1)
|
|
70
74
|
}
|
|
71
75
|
|
package/or.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
const promiseAll = require('./_internal/promiseAll')
|
|
1
2
|
const isPromise = require('./_internal/isPromise')
|
|
2
|
-
const
|
|
3
|
+
const areAnyValuesPromises = require('./_internal/areAnyValuesPromises')
|
|
3
4
|
const __ = require('./_internal/placeholder')
|
|
5
|
+
const curry2 = require('./_internal/curry2')
|
|
6
|
+
const curry3 = require('./_internal/curry3')
|
|
7
|
+
const curryArgs2 = require('./_internal/curryArgs2')
|
|
4
8
|
const thunkConditional = require('./_internal/thunkConditional')
|
|
5
9
|
const areAllValuesNonfunctions = require('./_internal/areAllValuesNonfunctions')
|
|
6
10
|
const thunkify2 = require('./_internal/thunkify2')
|
|
@@ -18,7 +22,7 @@ const always = require('./_internal/always')
|
|
|
18
22
|
const areAnyNonfunctionsTruthy = function (predicates, index) {
|
|
19
23
|
const length = predicates.length
|
|
20
24
|
while (++index < length) {
|
|
21
|
-
|
|
25
|
+
const predicate = predicates[index]
|
|
22
26
|
if (isPromise(predicate)) {
|
|
23
27
|
return predicate.then(curry3(
|
|
24
28
|
thunkConditional,
|
|
@@ -40,20 +44,19 @@ const areAnyNonfunctionsTruthy = function (predicates, index) {
|
|
|
40
44
|
* @synopsis
|
|
41
45
|
* ```coffeescript [specscript]
|
|
42
46
|
* asyncAreAnyPredicatesTruthy(
|
|
47
|
+
* args Array,
|
|
43
48
|
* predicates Array<predicate function|nonfunction>,
|
|
44
|
-
* point any,
|
|
45
49
|
* index number,
|
|
46
50
|
* ) -> allTruthy boolean
|
|
47
51
|
* ```
|
|
48
52
|
*/
|
|
49
|
-
const asyncAreAnyPredicatesTruthy = async function (
|
|
53
|
+
const asyncAreAnyPredicatesTruthy = async function (args, predicates, index) {
|
|
50
54
|
const length = predicates.length
|
|
51
55
|
while (++index < length) {
|
|
52
56
|
let predicate = predicates[index]
|
|
53
57
|
if (typeof predicate == 'function') {
|
|
54
|
-
predicate = predicate(
|
|
58
|
+
predicate = predicate(...args)
|
|
55
59
|
}
|
|
56
|
-
console.log('hey - or', predicate)
|
|
57
60
|
if (isPromise(predicate)) {
|
|
58
61
|
predicate = await predicate
|
|
59
62
|
}
|
|
@@ -64,6 +67,31 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
|
|
|
64
67
|
return false
|
|
65
68
|
}
|
|
66
69
|
|
|
70
|
+
// areAnyPredicatesTruthy(args Array, predicates Array<function>) -> Promise|boolean
|
|
71
|
+
const areAnyPredicatesTruthy = function (args, predicates) {
|
|
72
|
+
const length = predicates.length
|
|
73
|
+
let index = -1
|
|
74
|
+
|
|
75
|
+
while (++index < length) {
|
|
76
|
+
let predicate = predicates[index]
|
|
77
|
+
if (typeof predicate == 'function') {
|
|
78
|
+
predicate = predicate(...args)
|
|
79
|
+
}
|
|
80
|
+
if (isPromise(predicate)) {
|
|
81
|
+
return predicate.then(curry3(
|
|
82
|
+
thunkConditional,
|
|
83
|
+
__,
|
|
84
|
+
always(true),
|
|
85
|
+
thunkify3(asyncAreAnyPredicatesTruthy, args, predicates, index),
|
|
86
|
+
))
|
|
87
|
+
}
|
|
88
|
+
if (predicate) {
|
|
89
|
+
return true
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return false
|
|
93
|
+
}
|
|
94
|
+
|
|
67
95
|
/**
|
|
68
96
|
* @name or
|
|
69
97
|
*
|
|
@@ -71,9 +99,9 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
|
|
|
71
99
|
* ```coffeescript [specscript]
|
|
72
100
|
* or(values Array<boolean>) -> result boolean
|
|
73
101
|
*
|
|
74
|
-
* or(
|
|
75
|
-
*
|
|
76
|
-
*
|
|
102
|
+
* or(...args, predicatesOrValues Array<function|boolean>) -> Promise|boolean
|
|
103
|
+
*
|
|
104
|
+
* or(predicatesOrValues Array<function|boolean>)(...args) -> Promise|boolean
|
|
77
105
|
* ```
|
|
78
106
|
*
|
|
79
107
|
* @description
|
|
@@ -105,33 +133,22 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
|
|
|
105
133
|
*
|
|
106
134
|
* @note ...args slows down here by an order of magnitude
|
|
107
135
|
*/
|
|
108
|
-
const or =
|
|
109
|
-
|
|
110
|
-
|
|
136
|
+
const or = function (...args) {
|
|
137
|
+
const predicatesOrValues = args.pop()
|
|
138
|
+
if (areAllValuesNonfunctions(predicatesOrValues)) {
|
|
139
|
+
return areAnyNonfunctionsTruthy(predicatesOrValues, -1)
|
|
111
140
|
}
|
|
112
|
-
return function areAnyPredicatesTruthy(point) {
|
|
113
|
-
const length = predicates.length
|
|
114
|
-
let index = -1
|
|
115
141
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
if (typeof predicate == 'function') {
|
|
119
|
-
predicate = predicate(point)
|
|
120
|
-
}
|
|
121
|
-
if (isPromise(predicate)) {
|
|
122
|
-
return predicate.then(curry3(
|
|
123
|
-
thunkConditional,
|
|
124
|
-
__,
|
|
125
|
-
always(true),
|
|
126
|
-
thunkify3(asyncAreAnyPredicatesTruthy, predicates, point, index),
|
|
127
|
-
))
|
|
128
|
-
}
|
|
129
|
-
if (predicate) {
|
|
130
|
-
return true
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
return false
|
|
142
|
+
if (args.length == 0) {
|
|
143
|
+
return curryArgs2(areAnyPredicatesTruthy, __, predicatesOrValues)
|
|
134
144
|
}
|
|
145
|
+
|
|
146
|
+
if (areAnyValuesPromises(args)) {
|
|
147
|
+
return promiseAll(args)
|
|
148
|
+
.then(curry2(areAnyPredicatesTruthy, __, predicatesOrValues))
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return areAnyPredicatesTruthy(args, predicatesOrValues)
|
|
135
152
|
}
|
|
136
153
|
|
|
137
154
|
module.exports = or
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rubico",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "[a]synchronous functional programming",
|
|
5
5
|
"author": "Richard Tong",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,23 +33,23 @@
|
|
|
33
33
|
"operator"
|
|
34
34
|
],
|
|
35
35
|
"devDependencies": {
|
|
36
|
+
"async": "^3.2.4",
|
|
36
37
|
"bluebird": "^3.7.2",
|
|
37
38
|
"codecov": "^3.7.1",
|
|
38
39
|
"eslint": "^8.4.1",
|
|
39
40
|
"fantasy-land": "^4.1.0",
|
|
40
|
-
"lodash": "^4.17.
|
|
41
|
+
"lodash": "^4.17.21",
|
|
41
42
|
"mocha": "^7.2.0",
|
|
42
43
|
"node-fetch": "^2.6.1",
|
|
43
44
|
"nyc": "^15.1.0",
|
|
44
|
-
"ramda": "^0.
|
|
45
|
+
"ramda": "^0.29.0",
|
|
45
46
|
"terser": "^5.10.0",
|
|
46
47
|
"thunk-test": "latest"
|
|
47
48
|
},
|
|
48
49
|
"scripts": {
|
|
49
|
-
"test": "mocha test.js
|
|
50
|
+
"test": "mocha test.js *.test.js */**.test.js",
|
|
50
51
|
"test-coverage": "nyc mocha test.js x/*.test.js monad/*.test.js",
|
|
51
|
-
"lint": "eslint
|
|
52
|
-
"
|
|
53
|
-
"build": "node distributor.js"
|
|
52
|
+
"lint": "eslint .",
|
|
53
|
+
"build": "./build"
|
|
54
54
|
}
|
|
55
55
|
}
|
package/pick.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const isPromise = require('./_internal/isPromise')
|
|
1
2
|
const getByPath = require('./_internal/getByPath')
|
|
2
3
|
const setByPath = require('./_internal/setByPath')
|
|
3
4
|
const curry2 = require('./_internal/curry2')
|
|
@@ -62,10 +63,13 @@ const _pick = function (source, keys) {
|
|
|
62
63
|
* ])
|
|
63
64
|
* ```
|
|
64
65
|
*/
|
|
65
|
-
const pick = (arg0, arg1)
|
|
66
|
+
const pick = function (arg0, arg1) {
|
|
66
67
|
if (arg1 == null) {
|
|
67
68
|
return curry2(_pick, __, arg0)
|
|
68
69
|
}
|
|
70
|
+
if (isPromise(arg0)) {
|
|
71
|
+
return arg0.then(curry2(_pick, __, arg1))
|
|
72
|
+
}
|
|
69
73
|
return _pick(arg0, arg1)
|
|
70
74
|
}
|
|
71
75
|
|