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/every.es.js
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
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
|
+
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
|
+
}
|
|
31
|
+
|
|
32
|
+
const isArray = Array.isArray
|
|
33
|
+
|
|
34
|
+
// argument resolver for curry3
|
|
35
|
+
const curry3ResolveArg0 = (
|
|
36
|
+
baseFunc, arg1, arg2,
|
|
37
|
+
) => function arg0Resolver(arg0) {
|
|
38
|
+
return baseFunc(arg0, arg1, arg2)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// argument resolver for curry3
|
|
42
|
+
const curry3ResolveArg1 = (
|
|
43
|
+
baseFunc, arg0, arg2,
|
|
44
|
+
) => function arg1Resolver(arg1) {
|
|
45
|
+
return baseFunc(arg0, arg1, arg2)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// argument resolver for curry3
|
|
49
|
+
const curry3ResolveArg2 = (
|
|
50
|
+
baseFunc, arg0, arg1,
|
|
51
|
+
) => function arg2Resolver(arg2) {
|
|
52
|
+
return baseFunc(arg0, arg1, arg2)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
56
|
+
if (arg0 == __) {
|
|
57
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
58
|
+
}
|
|
59
|
+
if (arg1 == __) {
|
|
60
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
61
|
+
}
|
|
62
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
66
|
+
|
|
67
|
+
const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
68
|
+
|
|
69
|
+
const arrayEvery = function (array, predicate) {
|
|
70
|
+
const arrayLength = array.length,
|
|
71
|
+
promises = []
|
|
72
|
+
let index = -1
|
|
73
|
+
while (++index < arrayLength) {
|
|
74
|
+
const predication = predicate(array[index])
|
|
75
|
+
if (isPromise(predication)) {
|
|
76
|
+
promises.push(predication)
|
|
77
|
+
} else if (!predication) {
|
|
78
|
+
return false
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return promises.length == 0
|
|
82
|
+
? true
|
|
83
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const iteratorEvery = function (iterator, predicate) {
|
|
87
|
+
const promises = []
|
|
88
|
+
for (const item of iterator) {
|
|
89
|
+
const predication = predicate(item)
|
|
90
|
+
if (isPromise(predication)) {
|
|
91
|
+
promises.push(predication)
|
|
92
|
+
} else if (!predication) {
|
|
93
|
+
return false
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return promises.length == 0
|
|
97
|
+
? true
|
|
98
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const SelfReferencingPromise = function (basePromise) {
|
|
102
|
+
const promise = basePromise.then(res => [res, promise])
|
|
103
|
+
return promise
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
107
|
+
|
|
108
|
+
const asyncIteratorEvery = async function (
|
|
109
|
+
asyncIterator, predicate, promisesInFlight, maxConcurrency = 20,
|
|
110
|
+
) {
|
|
111
|
+
let iteration = await asyncIterator.next()
|
|
112
|
+
while (!iteration.done) {
|
|
113
|
+
if (promisesInFlight.size >= maxConcurrency) {
|
|
114
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
115
|
+
promisesInFlight.delete(promise)
|
|
116
|
+
if (!predication) {
|
|
117
|
+
return false
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const predication = predicate(iteration.value)
|
|
122
|
+
if (isPromise(predication)) {
|
|
123
|
+
promisesInFlight.add(SelfReferencingPromise(predication))
|
|
124
|
+
} else if (!predication) {
|
|
125
|
+
return false
|
|
126
|
+
}
|
|
127
|
+
iteration = await asyncIterator.next()
|
|
128
|
+
}
|
|
129
|
+
while (promisesInFlight.size > 0) {
|
|
130
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
131
|
+
promisesInFlight.delete(promise)
|
|
132
|
+
if (!predication) {
|
|
133
|
+
return false
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return true
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const objectValues = Object.values
|
|
140
|
+
|
|
141
|
+
const reducerAllSync = (predicate, result, item) => result ? predicate(item) : false
|
|
142
|
+
|
|
143
|
+
const reducerEvery = predicate => function allReducer(result, item) {
|
|
144
|
+
return result === false ? false
|
|
145
|
+
: isPromise(result) ? result.then(
|
|
146
|
+
curry3(reducerAllSync, predicate, __, item))
|
|
147
|
+
: result ? predicate(item) : false
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const symbolIterator = Symbol.iterator
|
|
151
|
+
|
|
152
|
+
const symbolAsyncIterator = Symbol.asyncIterator
|
|
153
|
+
|
|
154
|
+
// _every(collection Array|Iterable|AsyncIterable|{ reduce: function }|Object, predicate function) -> Promise|boolean
|
|
155
|
+
const _every = function (collection, predicate) {
|
|
156
|
+
if (isArray(collection)) {
|
|
157
|
+
return arrayEvery(collection, predicate)
|
|
158
|
+
}
|
|
159
|
+
if (collection == null) {
|
|
160
|
+
return predicate(collection)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
164
|
+
return iteratorEvery(collection[symbolIterator](), predicate)
|
|
165
|
+
}
|
|
166
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
167
|
+
return asyncIteratorEvery(
|
|
168
|
+
collection[symbolAsyncIterator](), predicate, new Set()
|
|
169
|
+
)
|
|
170
|
+
}
|
|
171
|
+
if (typeof collection.reduce == 'function') {
|
|
172
|
+
return collection.reduce(reducerEvery(predicate), true)
|
|
173
|
+
}
|
|
174
|
+
if (collection.constructor == Object) {
|
|
175
|
+
return arrayEvery(objectValues(collection), predicate)
|
|
176
|
+
}
|
|
177
|
+
return predicate(collection)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const every = function (...args) {
|
|
181
|
+
const predicate = args.pop()
|
|
182
|
+
if (args.length == 0) {
|
|
183
|
+
return curry2(_every, __, predicate)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const collection = args[0]
|
|
187
|
+
if (isPromise(collection)) {
|
|
188
|
+
return collection.then(curry2(_every, __, predicate))
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return _every(collection, predicate)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export default every
|
|
@@ -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=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(t){return r(t,e)},curry2ResolveArg1=(r,e)=>function(t){return r(e,t)},curry2=function(r,e,t){return e==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,e)},isArray=Array.isArray,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)},promiseAll=Promise.all.bind(Promise),callPropUnary=(r,e,t)=>r[e](t),arrayEvery=function(r,e){const t=r.length,n=[];let o=-1;for(;++o<t;){const t=e(r[o]);if(isPromise(t))n.push(t);else if(!t)return!1}return 0==n.length||promiseAll(n).then(curry3(callPropUnary,__,"every",Boolean))},iteratorEvery=function(r,e){const t=[];for(const n of r){const r=e(n);if(isPromise(r))t.push(r);else if(!r)return!1}return 0==t.length||promiseAll(t).then(curry3(callPropUnary,__,"every",Boolean))},SelfReferencingPromise=function(r){const e=r.then((r=>[r,e]));return e},promiseRace=Promise.race.bind(Promise),asyncIteratorEvery=async function(r,e,t,n=20){let o=await r.next();for(;!o.done;){if(t.size>=n){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}const c=e(o.value);if(isPromise(c))t.add(SelfReferencingPromise(c));else if(!c)return!1;o=await r.next()}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),!r)return!1}return!0},objectValues=Object.values,reducerAllSync=(r,e,t)=>!!e&&r(t),reducerEvery=r=>function(e,t){return!1!==e&&(isPromise(e)?e.then(curry3(reducerAllSync,r,__,t)):!!e&&r(t))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,_every=function(r,e){return isArray(r)?arrayEvery(r,e):null==r?e(r):"function"==typeof r[symbolIterator]?iteratorEvery(r[symbolIterator](),e):"function"==typeof r[symbolAsyncIterator]?asyncIteratorEvery(r[symbolAsyncIterator](),e,new Set):"function"==typeof r.reduce?r.reduce(reducerEvery(e),!0):r.constructor==Object?arrayEvery(objectValues(r),e):e(r)},every=function(...r){const e=r.pop();if(0==r.length)return curry2(_every,__,e);const t=r[0];return isPromise(t)?t.then(curry2(_every,__,e)):_every(t,e)};export default every;
|
package/dist/every.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
(function (root, every) {
|
|
9
|
+
if (typeof module == 'object') (module.exports = every) // CommonJS
|
|
10
|
+
else if (typeof define == 'function') define(() => every) // AMD
|
|
11
|
+
else (root.every = every) // 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
|
+
|
|
38
|
+
const isArray = Array.isArray
|
|
39
|
+
|
|
40
|
+
// argument resolver for curry3
|
|
41
|
+
const curry3ResolveArg0 = (
|
|
42
|
+
baseFunc, arg1, arg2,
|
|
43
|
+
) => function arg0Resolver(arg0) {
|
|
44
|
+
return baseFunc(arg0, arg1, arg2)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// argument resolver for curry3
|
|
48
|
+
const curry3ResolveArg1 = (
|
|
49
|
+
baseFunc, arg0, arg2,
|
|
50
|
+
) => function arg1Resolver(arg1) {
|
|
51
|
+
return baseFunc(arg0, arg1, arg2)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// argument resolver for curry3
|
|
55
|
+
const curry3ResolveArg2 = (
|
|
56
|
+
baseFunc, arg0, arg1,
|
|
57
|
+
) => function arg2Resolver(arg2) {
|
|
58
|
+
return baseFunc(arg0, arg1, arg2)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
62
|
+
if (arg0 == __) {
|
|
63
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
64
|
+
}
|
|
65
|
+
if (arg1 == __) {
|
|
66
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
67
|
+
}
|
|
68
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
72
|
+
|
|
73
|
+
const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
74
|
+
|
|
75
|
+
const arrayEvery = function (array, predicate) {
|
|
76
|
+
const arrayLength = array.length,
|
|
77
|
+
promises = []
|
|
78
|
+
let index = -1
|
|
79
|
+
while (++index < arrayLength) {
|
|
80
|
+
const predication = predicate(array[index])
|
|
81
|
+
if (isPromise(predication)) {
|
|
82
|
+
promises.push(predication)
|
|
83
|
+
} else if (!predication) {
|
|
84
|
+
return false
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return promises.length == 0
|
|
88
|
+
? true
|
|
89
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const iteratorEvery = function (iterator, predicate) {
|
|
93
|
+
const promises = []
|
|
94
|
+
for (const item of iterator) {
|
|
95
|
+
const predication = predicate(item)
|
|
96
|
+
if (isPromise(predication)) {
|
|
97
|
+
promises.push(predication)
|
|
98
|
+
} else if (!predication) {
|
|
99
|
+
return false
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return promises.length == 0
|
|
103
|
+
? true
|
|
104
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const SelfReferencingPromise = function (basePromise) {
|
|
108
|
+
const promise = basePromise.then(res => [res, promise])
|
|
109
|
+
return promise
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
113
|
+
|
|
114
|
+
const asyncIteratorEvery = async function (
|
|
115
|
+
asyncIterator, predicate, promisesInFlight, maxConcurrency = 20,
|
|
116
|
+
) {
|
|
117
|
+
let iteration = await asyncIterator.next()
|
|
118
|
+
while (!iteration.done) {
|
|
119
|
+
if (promisesInFlight.size >= maxConcurrency) {
|
|
120
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
121
|
+
promisesInFlight.delete(promise)
|
|
122
|
+
if (!predication) {
|
|
123
|
+
return false
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const predication = predicate(iteration.value)
|
|
128
|
+
if (isPromise(predication)) {
|
|
129
|
+
promisesInFlight.add(SelfReferencingPromise(predication))
|
|
130
|
+
} else if (!predication) {
|
|
131
|
+
return false
|
|
132
|
+
}
|
|
133
|
+
iteration = await asyncIterator.next()
|
|
134
|
+
}
|
|
135
|
+
while (promisesInFlight.size > 0) {
|
|
136
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
137
|
+
promisesInFlight.delete(promise)
|
|
138
|
+
if (!predication) {
|
|
139
|
+
return false
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return true
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
const objectValues = Object.values
|
|
146
|
+
|
|
147
|
+
const reducerAllSync = (predicate, result, item) => result ? predicate(item) : false
|
|
148
|
+
|
|
149
|
+
const reducerEvery = predicate => function allReducer(result, item) {
|
|
150
|
+
return result === false ? false
|
|
151
|
+
: isPromise(result) ? result.then(
|
|
152
|
+
curry3(reducerAllSync, predicate, __, item))
|
|
153
|
+
: result ? predicate(item) : false
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const symbolIterator = Symbol.iterator
|
|
157
|
+
|
|
158
|
+
const symbolAsyncIterator = Symbol.asyncIterator
|
|
159
|
+
|
|
160
|
+
// _every(collection Array|Iterable|AsyncIterable|{ reduce: function }|Object, predicate function) -> Promise|boolean
|
|
161
|
+
const _every = function (collection, predicate) {
|
|
162
|
+
if (isArray(collection)) {
|
|
163
|
+
return arrayEvery(collection, predicate)
|
|
164
|
+
}
|
|
165
|
+
if (collection == null) {
|
|
166
|
+
return predicate(collection)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
170
|
+
return iteratorEvery(collection[symbolIterator](), predicate)
|
|
171
|
+
}
|
|
172
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
173
|
+
return asyncIteratorEvery(
|
|
174
|
+
collection[symbolAsyncIterator](), predicate, new Set()
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
if (typeof collection.reduce == 'function') {
|
|
178
|
+
return collection.reduce(reducerEvery(predicate), true)
|
|
179
|
+
}
|
|
180
|
+
if (collection.constructor == Object) {
|
|
181
|
+
return arrayEvery(objectValues(collection), predicate)
|
|
182
|
+
}
|
|
183
|
+
return predicate(collection)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const every = function (...args) {
|
|
187
|
+
const predicate = args.pop()
|
|
188
|
+
if (args.length == 0) {
|
|
189
|
+
return curry2(_every, __, predicate)
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const collection = args[0]
|
|
193
|
+
if (isPromise(collection)) {
|
|
194
|
+
return collection.then(curry2(_every, __, predicate))
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return _every(collection, predicate)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return every
|
|
201
|
+
}())))
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rubico v2.0.1
|
|
3
|
+
* https://github.com/a-synchronous/rubico
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
|
+
* rubico may be freely distributed under the MIT license.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.every=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),e=function(n,e,o){return e==t?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,e)},o=Array.isArray,r=function(n,e,o,r){return e==t?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==t?((n,t,e)=>function(o){return n(t,o,e)})(n,e,r):((n,t,e)=>function(o){return n(t,e,o)})(n,e,o)},u=Promise.all.bind(Promise),i=(n,t,e)=>n[t](e),c=function(e,o){const c=e.length,f=[];let s=-1;for(;++s<c;){const t=o(e[s]);if(n(t))f.push(t);else if(!t)return!1}return 0==f.length||u(f).then(r(i,t,"every",Boolean))},f=function(n){const t=n.then((n=>[n,t]));return t},s=Promise.race.bind(Promise),l=Object.values,a=(n,t,e)=>!!t&&n(e),y=Symbol.iterator,h=Symbol.asyncIterator,d=function(e,d){return o(e)?c(e,d):null==e?d(e):"function"==typeof e[y]?function(e,o){const c=[];for(const t of e){const e=o(t);if(n(e))c.push(e);else if(!e)return!1}return 0==c.length||u(c).then(r(i,t,"every",Boolean))}(e[y](),d):"function"==typeof e[h]?async function(t,e,o,r=20){let u=await t.next();for(;!u.done;){if(o.size>=r){const[n,t]=await s(o);if(o.delete(t),!n)return!1}const i=e(u.value);if(n(i))o.add(f(i));else if(!i)return!1;u=await t.next()}for(;o.size>0;){const[n,t]=await s(o);if(o.delete(t),!n)return!1}return!0}(e[h](),d,new Set):"function"==typeof e.reduce?e.reduce((e=>function(o,u){return!1!==o&&(n(o)?o.then(r(a,e,t,u)):!!o&&e(u))})(d),!0):e.constructor==Object?c(l(e),d):d(e)};return function(...o){const r=o.pop();if(0==o.length)return e(d,t,r);const u=o[0];return n(u)?u.then(e(d,t,r)):d(u,r)}}());
|
package/dist/every.mjs
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
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
|
+
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
|
+
}
|
|
31
|
+
|
|
32
|
+
const isArray = Array.isArray
|
|
33
|
+
|
|
34
|
+
// argument resolver for curry3
|
|
35
|
+
const curry3ResolveArg0 = (
|
|
36
|
+
baseFunc, arg1, arg2,
|
|
37
|
+
) => function arg0Resolver(arg0) {
|
|
38
|
+
return baseFunc(arg0, arg1, arg2)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// argument resolver for curry3
|
|
42
|
+
const curry3ResolveArg1 = (
|
|
43
|
+
baseFunc, arg0, arg2,
|
|
44
|
+
) => function arg1Resolver(arg1) {
|
|
45
|
+
return baseFunc(arg0, arg1, arg2)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// argument resolver for curry3
|
|
49
|
+
const curry3ResolveArg2 = (
|
|
50
|
+
baseFunc, arg0, arg1,
|
|
51
|
+
) => function arg2Resolver(arg2) {
|
|
52
|
+
return baseFunc(arg0, arg1, arg2)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
56
|
+
if (arg0 == __) {
|
|
57
|
+
return curry3ResolveArg0(baseFunc, arg1, arg2)
|
|
58
|
+
}
|
|
59
|
+
if (arg1 == __) {
|
|
60
|
+
return curry3ResolveArg1(baseFunc, arg0, arg2)
|
|
61
|
+
}
|
|
62
|
+
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
66
|
+
|
|
67
|
+
const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
68
|
+
|
|
69
|
+
const arrayEvery = function (array, predicate) {
|
|
70
|
+
const arrayLength = array.length,
|
|
71
|
+
promises = []
|
|
72
|
+
let index = -1
|
|
73
|
+
while (++index < arrayLength) {
|
|
74
|
+
const predication = predicate(array[index])
|
|
75
|
+
if (isPromise(predication)) {
|
|
76
|
+
promises.push(predication)
|
|
77
|
+
} else if (!predication) {
|
|
78
|
+
return false
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return promises.length == 0
|
|
82
|
+
? true
|
|
83
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const iteratorEvery = function (iterator, predicate) {
|
|
87
|
+
const promises = []
|
|
88
|
+
for (const item of iterator) {
|
|
89
|
+
const predication = predicate(item)
|
|
90
|
+
if (isPromise(predication)) {
|
|
91
|
+
promises.push(predication)
|
|
92
|
+
} else if (!predication) {
|
|
93
|
+
return false
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return promises.length == 0
|
|
97
|
+
? true
|
|
98
|
+
: promiseAll(promises).then(curry3(callPropUnary, __, 'every', Boolean))
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const SelfReferencingPromise = function (basePromise) {
|
|
102
|
+
const promise = basePromise.then(res => [res, promise])
|
|
103
|
+
return promise
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
107
|
+
|
|
108
|
+
const asyncIteratorEvery = async function (
|
|
109
|
+
asyncIterator, predicate, promisesInFlight, maxConcurrency = 20,
|
|
110
|
+
) {
|
|
111
|
+
let iteration = await asyncIterator.next()
|
|
112
|
+
while (!iteration.done) {
|
|
113
|
+
if (promisesInFlight.size >= maxConcurrency) {
|
|
114
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
115
|
+
promisesInFlight.delete(promise)
|
|
116
|
+
if (!predication) {
|
|
117
|
+
return false
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const predication = predicate(iteration.value)
|
|
122
|
+
if (isPromise(predication)) {
|
|
123
|
+
promisesInFlight.add(SelfReferencingPromise(predication))
|
|
124
|
+
} else if (!predication) {
|
|
125
|
+
return false
|
|
126
|
+
}
|
|
127
|
+
iteration = await asyncIterator.next()
|
|
128
|
+
}
|
|
129
|
+
while (promisesInFlight.size > 0) {
|
|
130
|
+
const [predication, promise] = await promiseRace(promisesInFlight)
|
|
131
|
+
promisesInFlight.delete(promise)
|
|
132
|
+
if (!predication) {
|
|
133
|
+
return false
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return true
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const objectValues = Object.values
|
|
140
|
+
|
|
141
|
+
const reducerAllSync = (predicate, result, item) => result ? predicate(item) : false
|
|
142
|
+
|
|
143
|
+
const reducerEvery = predicate => function allReducer(result, item) {
|
|
144
|
+
return result === false ? false
|
|
145
|
+
: isPromise(result) ? result.then(
|
|
146
|
+
curry3(reducerAllSync, predicate, __, item))
|
|
147
|
+
: result ? predicate(item) : false
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const symbolIterator = Symbol.iterator
|
|
151
|
+
|
|
152
|
+
const symbolAsyncIterator = Symbol.asyncIterator
|
|
153
|
+
|
|
154
|
+
// _every(collection Array|Iterable|AsyncIterable|{ reduce: function }|Object, predicate function) -> Promise|boolean
|
|
155
|
+
const _every = function (collection, predicate) {
|
|
156
|
+
if (isArray(collection)) {
|
|
157
|
+
return arrayEvery(collection, predicate)
|
|
158
|
+
}
|
|
159
|
+
if (collection == null) {
|
|
160
|
+
return predicate(collection)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (typeof collection[symbolIterator] == 'function') {
|
|
164
|
+
return iteratorEvery(collection[symbolIterator](), predicate)
|
|
165
|
+
}
|
|
166
|
+
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
167
|
+
return asyncIteratorEvery(
|
|
168
|
+
collection[symbolAsyncIterator](), predicate, new Set()
|
|
169
|
+
)
|
|
170
|
+
}
|
|
171
|
+
if (typeof collection.reduce == 'function') {
|
|
172
|
+
return collection.reduce(reducerEvery(predicate), true)
|
|
173
|
+
}
|
|
174
|
+
if (collection.constructor == Object) {
|
|
175
|
+
return arrayEvery(objectValues(collection), predicate)
|
|
176
|
+
}
|
|
177
|
+
return predicate(collection)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
const every = function (...args) {
|
|
181
|
+
const predicate = args.pop()
|
|
182
|
+
if (args.length == 0) {
|
|
183
|
+
return curry2(_every, __, predicate)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
const collection = args[0]
|
|
187
|
+
if (isPromise(collection)) {
|
|
188
|
+
return collection.then(curry2(_every, __, predicate))
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return _every(collection, predicate)
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
export default every
|