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