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