rubico 1.9.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/{distributor.js → build} +50 -50
- package/compose.js +46 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.min.mjs +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.min.mjs +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.min.mjs +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.min.mjs +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.min.mjs +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.min.mjs +7 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.min.mjs +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.min.mjs +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.min.mjs +7 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.min.mjs +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.min.mjs +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/forEach.min.mjs +7 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.min.mjs +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.min.mjs +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.min.mjs +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.min.mjs +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.min.mjs +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.min.mjs +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.min.mjs +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.min.mjs +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.min.mjs +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.min.mjs +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.min.mjs +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.min.mjs +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +730 -869
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.js +730 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.min.mjs +3 -3
- package/dist/rubico.mjs +730 -869
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.min.mjs +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/some.min.mjs +7 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.min.mjs +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.min.mjs +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.min.mjs +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.min.mjs +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.min.mjs +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.min.mjs +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.min.mjs +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.min.mjs +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.min.mjs +3 -3
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.min.mjs +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.min.mjs +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.min.mjs +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.min.mjs +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.min.mjs +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.min.mjs +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.min.mjs +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.min.mjs +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.min.mjs +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.min.mjs +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.min.mjs +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.min.mjs +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.min.mjs +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.min.mjs +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.min.mjs +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.min.mjs +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.min.mjs +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.min.mjs +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.min.mjs +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.min.mjs +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.min.mjs +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.min.mjs +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.min.mjs +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.min.mjs +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.min.mjs +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.min.mjs +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.min.mjs +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.min.mjs +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.min.mjs +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +9 -2042
- package/eq.js +21 -63
- package/es.js +730 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +730 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +10 -8
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/x/callProp.js
CHANGED
package/dist/x/callProp.min.js
CHANGED
package/dist/x/callProp.min.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const callProp=(l,...o)=>function(r){return r[l](...o)};export default callProp;
|
package/dist/x/callProp.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const isArray=Array.isArray,arrayDefaultsDeepFromArray=function(r,e){const t=e.length,c=r.slice();let o=-1;for(;++o<t;){const t=r[o],a=e[o];isArray(t)&&isArray(a)?c[o]=arrayDefaultsDeepFromArray(t,a):null==t?c[o]=a:null==a?c[o]=t:t.constructor==Object&&a.constructor==Object?c[o]=objectDefaultsDeepFromObject(t,a):c[o]=t}return c},objectDefaultsDeepFromObject=function(r,e){const t={...r};for(const c in e){const o=r[c],a=e[c];isArray(o)&&isArray(a)?t[c]=arrayDefaultsDeepFromArray(o,a):null==o?t[c]=a:null==a?t[c]=o:o.constructor==Object&&a.constructor==Object?t[c]=objectDefaultsDeepFromObject(o,a):t[c]=o}return t},defaultsDeep=r=>function(e){return isArray(e)&&isArray(r)?arrayDefaultsDeepFromArray(e,r):null==e||null==r?e:e.constructor==Object&&r.constructor==Object?objectDefaultsDeepFromObject(e,r):e};export default defaultsDeep;
|
package/dist/x/defaultsDeep.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const isArray=Array.isArray,arrayDefaultsDeepFromArray=function(r,e){const t=e.length,c=r.slice();let o=-1;for(;++o<t;){const t=r[o],a=e[o];isArray(t)&&isArray(a)?c[o]=arrayDefaultsDeepFromArray(t,a):null==t?c[o]=a:null==a?c[o]=t:t.constructor==Object&&a.constructor==Object?c[o]=objectDefaultsDeepFromObject(t,a):c[o]=t}return c},objectDefaultsDeepFromObject=function(r,e){const t={...r};for(const c in e){const o=r[c],a=e[c];isArray(o)&&isArray(a)?t[c]=arrayDefaultsDeepFromArray(o,a):null==o?t[c]=a:null==a?t[c]=o:o.constructor==Object&&a.constructor==Object?t[c]=objectDefaultsDeepFromObject(o,a):t[c]=o}return t},defaultsDeep=r=>function(e){return isArray(e)&&isArray(r)?arrayDefaultsDeepFromArray(e,r):null==e||null==r?e:e.constructor==Object&&r.constructor==Object?objectDefaultsDeepFromObject(e,r):e};export default defaultsDeep;
|
package/dist/x/defaultsDeep.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const __ = Symbol.for('placeholder')
|
|
@@ -80,7 +80,7 @@ const SelfReferencingPromise = function (basePromise) {
|
|
|
80
80
|
|
|
81
81
|
const promiseRace = Promise.race.bind(Promise)
|
|
82
82
|
|
|
83
|
-
const
|
|
83
|
+
const asyncArraySome = async function (
|
|
84
84
|
array, predicate, index, promisesInFlight,
|
|
85
85
|
) {
|
|
86
86
|
const length = array.length
|
|
@@ -103,13 +103,13 @@ const asyncArrayAny = async function (
|
|
|
103
103
|
return false
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
const
|
|
106
|
+
const arraySome = function (array, predicate) {
|
|
107
107
|
const length = array.length
|
|
108
108
|
let index = -1
|
|
109
109
|
while (++index < length) {
|
|
110
110
|
const predication = predicate(array[index])
|
|
111
111
|
if (isPromise(predication)) {
|
|
112
|
-
return
|
|
112
|
+
return asyncArraySome(
|
|
113
113
|
array, predicate, index, new Set([SelfReferencingPromise(predication)]))
|
|
114
114
|
}
|
|
115
115
|
if (predication) {
|
|
@@ -142,7 +142,7 @@ const differenceWithArrayAsync = async function (
|
|
|
142
142
|
const allValuesLength = allValues.length
|
|
143
143
|
while (++index < allValuesLength) {
|
|
144
144
|
const item = allValues[index]
|
|
145
|
-
let doesItemExistByComparator =
|
|
145
|
+
let doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
146
146
|
if (isPromise(doesItemExistByComparator)) {
|
|
147
147
|
doesItemExistByComparator = await doesItemExistByComparator
|
|
148
148
|
}
|
|
@@ -159,7 +159,7 @@ const differenceWithArray = function (comparator, allValues, array) {
|
|
|
159
159
|
let index = -1
|
|
160
160
|
while (++index < allValuesLength) {
|
|
161
161
|
const item = allValues[index],
|
|
162
|
-
doesItemExistByComparator =
|
|
162
|
+
doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
163
163
|
if (isPromise(doesItemExistByComparator)) {
|
|
164
164
|
return doesItemExistByComparator.then(funcConcatSync(
|
|
165
165
|
curry3(thunkConditional, __, noop, thunkify2(arrayPush, result, item)),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,
|
|
7
|
+
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},thunkify2=(r,e,n)=>function(){return r(e,n)},thunkify5=(r,e,n,t,o,i)=>function(){return r(e,n,t,o,i)},thunkConditional=(r,e,n)=>r?e():n(),isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,SelfReferencingPromise=function(r){const e=r.then((r=>[r,e]));return e},promiseRace=Promise.race.bind(Promise),asyncArraySome=async function(r,e,n,t){const o=r.length;for(;++n<o;){const o=e(r[n]);if(isPromise(o))t.add(SelfReferencingPromise(o));else if(o)return!0}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}return!1},arraySome=function(r,e){const n=r.length;let t=-1;for(;++t<n;){const n=e(r[t]);if(isPromise(n))return asyncArraySome(r,e,t,new Set([SelfReferencingPromise(n)]));if(n)return!0}return!1},arrayPush=function(r,e){return r.push(e),r},funcConcatSync=(r,e)=>function(...n){return e(r(...n))},noop=function(){},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,differenceWithArrayAsync=async function(r,e,n,t,o){const i=e.length;for(;++o<i;){const i=e[o];let c=arraySome(n,curry2(r,i,__));isPromise(c)&&(c=await c),c||t.push(i)}return t},differenceWithArray=function(r,e,n){const t=e.length,o=[];let i=-1;for(;++i<t;){const t=e[i],y=arraySome(n,curry2(r,t,__));if(isPromise(y))return y.then(funcConcatSync((c=thunkConditional,u=__,s=noop,f=thunkify2(arrayPush,o,t),u==__?curry3ResolveArg0(c,s,f):s==__?curry3ResolveArg1(c,u,f):curry3ResolveArg2(c,u,s)),thunkify5(differenceWithArrayAsync,r,e,n,o,i)));y||o.push(t)}var c,u,s,f;return o},differenceWith=(r,e)=>function(n){if(isArray(n))return differenceWithArray(r,e,n);throw new TypeError(`${n} is not an Array`)};export default differenceWith;
|
package/dist/x/differenceWith.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -86,7 +86,7 @@ const SelfReferencingPromise = function (basePromise) {
|
|
|
86
86
|
|
|
87
87
|
const promiseRace = Promise.race.bind(Promise)
|
|
88
88
|
|
|
89
|
-
const
|
|
89
|
+
const asyncArraySome = async function (
|
|
90
90
|
array, predicate, index, promisesInFlight,
|
|
91
91
|
) {
|
|
92
92
|
const length = array.length
|
|
@@ -109,13 +109,13 @@ const asyncArrayAny = async function (
|
|
|
109
109
|
return false
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
const
|
|
112
|
+
const arraySome = function (array, predicate) {
|
|
113
113
|
const length = array.length
|
|
114
114
|
let index = -1
|
|
115
115
|
while (++index < length) {
|
|
116
116
|
const predication = predicate(array[index])
|
|
117
117
|
if (isPromise(predication)) {
|
|
118
|
-
return
|
|
118
|
+
return asyncArraySome(
|
|
119
119
|
array, predicate, index, new Set([SelfReferencingPromise(predication)]))
|
|
120
120
|
}
|
|
121
121
|
if (predication) {
|
|
@@ -148,7 +148,7 @@ const differenceWithArrayAsync = async function (
|
|
|
148
148
|
const allValuesLength = allValues.length
|
|
149
149
|
while (++index < allValuesLength) {
|
|
150
150
|
const item = allValues[index]
|
|
151
|
-
let doesItemExistByComparator =
|
|
151
|
+
let doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
152
152
|
if (isPromise(doesItemExistByComparator)) {
|
|
153
153
|
doesItemExistByComparator = await doesItemExistByComparator
|
|
154
154
|
}
|
|
@@ -165,7 +165,7 @@ const differenceWithArray = function (comparator, allValues, array) {
|
|
|
165
165
|
let index = -1
|
|
166
166
|
while (++index < allValuesLength) {
|
|
167
167
|
const item = allValues[index],
|
|
168
|
-
doesItemExistByComparator =
|
|
168
|
+
doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
169
169
|
if (isPromise(doesItemExistByComparator)) {
|
|
170
170
|
return doesItemExistByComparator.then(funcConcatSync(
|
|
171
171
|
curry3(thunkConditional, __, noop, thunkify2(arrayPush, result, item)),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,
|
|
7
|
+
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},thunkify2=(r,e,n)=>function(){return r(e,n)},thunkify5=(r,e,n,t,o,i)=>function(){return r(e,n,t,o,i)},thunkConditional=(r,e,n)=>r?e():n(),isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,SelfReferencingPromise=function(r){const e=r.then((r=>[r,e]));return e},promiseRace=Promise.race.bind(Promise),asyncArraySome=async function(r,e,n,t){const o=r.length;for(;++n<o;){const o=e(r[n]);if(isPromise(o))t.add(SelfReferencingPromise(o));else if(o)return!0}for(;t.size>0;){const[r,e]=await promiseRace(t);if(t.delete(e),r)return!0}return!1},arraySome=function(r,e){const n=r.length;let t=-1;for(;++t<n;){const n=e(r[t]);if(isPromise(n))return asyncArraySome(r,e,t,new Set([SelfReferencingPromise(n)]));if(n)return!0}return!1},arrayPush=function(r,e){return r.push(e),r},funcConcatSync=(r,e)=>function(...n){return e(r(...n))},noop=function(){},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,differenceWithArrayAsync=async function(r,e,n,t,o){const i=e.length;for(;++o<i;){const i=e[o];let c=arraySome(n,curry2(r,i,__));isPromise(c)&&(c=await c),c||t.push(i)}return t},differenceWithArray=function(r,e,n){const t=e.length,o=[];let i=-1;for(;++i<t;){const t=e[i],y=arraySome(n,curry2(r,t,__));if(isPromise(y))return y.then(funcConcatSync((c=thunkConditional,u=__,s=noop,f=thunkify2(arrayPush,o,t),u==__?curry3ResolveArg0(c,s,f):s==__?curry3ResolveArg1(c,u,f):curry3ResolveArg2(c,u,s)),thunkify5(differenceWithArrayAsync,r,e,n,o,i)));y||o.push(t)}var c,u,s,f;return o},differenceWith=(r,e)=>function(n){if(isArray(n))return differenceWithArray(r,e,n);throw new TypeError(`${n} is not an Array`)};export default differenceWith;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const __ = Symbol.for('placeholder')
|
|
@@ -80,7 +80,7 @@ const SelfReferencingPromise = function (basePromise) {
|
|
|
80
80
|
|
|
81
81
|
const promiseRace = Promise.race.bind(Promise)
|
|
82
82
|
|
|
83
|
-
const
|
|
83
|
+
const asyncArraySome = async function (
|
|
84
84
|
array, predicate, index, promisesInFlight,
|
|
85
85
|
) {
|
|
86
86
|
const length = array.length
|
|
@@ -103,13 +103,13 @@ const asyncArrayAny = async function (
|
|
|
103
103
|
return false
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
const
|
|
106
|
+
const arraySome = function (array, predicate) {
|
|
107
107
|
const length = array.length
|
|
108
108
|
let index = -1
|
|
109
109
|
while (++index < length) {
|
|
110
110
|
const predication = predicate(array[index])
|
|
111
111
|
if (isPromise(predication)) {
|
|
112
|
-
return
|
|
112
|
+
return asyncArraySome(
|
|
113
113
|
array, predicate, index, new Set([SelfReferencingPromise(predication)]))
|
|
114
114
|
}
|
|
115
115
|
if (predication) {
|
|
@@ -142,7 +142,7 @@ const differenceWithArrayAsync = async function (
|
|
|
142
142
|
const allValuesLength = allValues.length
|
|
143
143
|
while (++index < allValuesLength) {
|
|
144
144
|
const item = allValues[index]
|
|
145
|
-
let doesItemExistByComparator =
|
|
145
|
+
let doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
146
146
|
if (isPromise(doesItemExistByComparator)) {
|
|
147
147
|
doesItemExistByComparator = await doesItemExistByComparator
|
|
148
148
|
}
|
|
@@ -159,7 +159,7 @@ const differenceWithArray = function (comparator, allValues, array) {
|
|
|
159
159
|
let index = -1
|
|
160
160
|
while (++index < allValuesLength) {
|
|
161
161
|
const item = allValues[index],
|
|
162
|
-
doesItemExistByComparator =
|
|
162
|
+
doesItemExistByComparator = arraySome(array, curry2(comparator, item, __))
|
|
163
163
|
if (isPromise(doesItemExistByComparator)) {
|
|
164
164
|
return doesItemExistByComparator.then(funcConcatSync(
|
|
165
165
|
curry3(thunkConditional, __, noop, thunkify2(arrayPush, result, item)),
|
package/dist/x/filterOut.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const __ = Symbol.for('placeholder')
|
|
@@ -72,20 +72,6 @@ const FilteringAsyncIterator = (asyncIterator, predicate) => ({
|
|
|
72
72
|
|
|
73
73
|
const isArray = Array.isArray
|
|
74
74
|
|
|
75
|
-
const objectProto = Object.prototype
|
|
76
|
-
|
|
77
|
-
const nativeObjectToString = objectProto.toString
|
|
78
|
-
|
|
79
|
-
const objectToString = value => nativeObjectToString.call(value)
|
|
80
|
-
|
|
81
|
-
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
82
|
-
|
|
83
|
-
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
84
|
-
|
|
85
|
-
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
86
|
-
|
|
87
|
-
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
88
|
-
|
|
89
75
|
// argument resolver for curry4
|
|
90
76
|
const curry4ResolveArg0 = (
|
|
91
77
|
baseFunc, arg1, arg2, arg3,
|
|
@@ -160,12 +146,11 @@ const arrayFilter = function (array, predicate) {
|
|
|
160
146
|
resultIndex = -1
|
|
161
147
|
while (++index < arrayLength) {
|
|
162
148
|
const item = array[index],
|
|
163
|
-
shouldIncludeItem = predicate(item)
|
|
149
|
+
shouldIncludeItem = predicate(item, index, array)
|
|
164
150
|
if (isPromise(shouldIncludeItem)) {
|
|
165
151
|
return promiseAll(
|
|
166
|
-
arrayExtendMap(
|
|
167
|
-
|
|
168
|
-
curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
152
|
+
arrayExtendMap([shouldIncludeItem], array, predicate, index)
|
|
153
|
+
).then(curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
169
154
|
}
|
|
170
155
|
if (shouldIncludeItem) {
|
|
171
156
|
result[++resultIndex] = item
|
|
@@ -174,18 +159,6 @@ const arrayFilter = function (array, predicate) {
|
|
|
174
159
|
return result
|
|
175
160
|
}
|
|
176
161
|
|
|
177
|
-
const generatorFunctionFilter = (
|
|
178
|
-
generatorFunction, predicate,
|
|
179
|
-
) => function* filteringGeneratorFunction(...args) {
|
|
180
|
-
yield* FilteringIterator(generatorFunction(...args), predicate)
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
const asyncGeneratorFunctionFilter = (
|
|
184
|
-
asyncGeneratorFunction, predicate,
|
|
185
|
-
) => async function* filteringAsyncGeneratorFunction(...args) {
|
|
186
|
-
yield* FilteringAsyncIterator(asyncGeneratorFunction(...args), predicate)
|
|
187
|
-
}
|
|
188
|
-
|
|
189
162
|
// argument resolver for curry3
|
|
190
163
|
const curry3ResolveArg0 = (
|
|
191
164
|
baseFunc, arg1, arg2,
|
|
@@ -217,29 +190,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
217
190
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
218
191
|
}
|
|
219
192
|
|
|
220
|
-
const thunkify2 = (func, arg0, arg1) => function thunk() {
|
|
221
|
-
return func(arg0, arg1)
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
const thunkConditional = (
|
|
225
|
-
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
226
|
-
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
227
|
-
|
|
228
|
-
const always = value => function getter() { return value }
|
|
229
|
-
|
|
230
|
-
const reducerFilter = (
|
|
231
|
-
reducer, predicate,
|
|
232
|
-
) => function filteringReducer(result, item) {
|
|
233
|
-
const shouldInclude = predicate(item)
|
|
234
|
-
return isPromise(shouldInclude)
|
|
235
|
-
? shouldInclude.then(curry3(
|
|
236
|
-
thunkConditional,
|
|
237
|
-
__,
|
|
238
|
-
thunkify2(reducer, result, item),
|
|
239
|
-
always(result)))
|
|
240
|
-
: shouldInclude ? reducer(result, item) : result
|
|
241
|
-
}
|
|
242
|
-
|
|
243
193
|
const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
244
194
|
|
|
245
195
|
const stringFilter = function (string, predicate) {
|
|
@@ -249,6 +199,12 @@ const stringFilter = function (string, predicate) {
|
|
|
249
199
|
: filteredCharactersArray.join('')
|
|
250
200
|
}
|
|
251
201
|
|
|
202
|
+
const always = value => function getter() { return value }
|
|
203
|
+
|
|
204
|
+
const thunkConditional = (
|
|
205
|
+
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
206
|
+
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
207
|
+
|
|
252
208
|
const thunkify1 = (func, arg0) => function thunk() {
|
|
253
209
|
return func(arg0)
|
|
254
210
|
}
|
|
@@ -323,53 +279,10 @@ const objectFilter = function (object, predicate) {
|
|
|
323
279
|
: promiseAll(promises).then(always(result))
|
|
324
280
|
}
|
|
325
281
|
|
|
326
|
-
const arrayExtendMapWithIndex = function (
|
|
327
|
-
array, values, valuesMapper, valuesIndex,
|
|
328
|
-
) {
|
|
329
|
-
const valuesLength = values.length
|
|
330
|
-
let arrayIndex = array.length - 1
|
|
331
|
-
|
|
332
|
-
while (++valuesIndex < valuesLength) {
|
|
333
|
-
array[++arrayIndex] = valuesMapper(
|
|
334
|
-
values[valuesIndex], valuesIndex, values)
|
|
335
|
-
}
|
|
336
|
-
return array
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
const arrayFilterWithIndex = function (array, predicate) {
|
|
340
|
-
const arrayLength = array.length,
|
|
341
|
-
result = []
|
|
342
|
-
let index = -1,
|
|
343
|
-
resultIndex = -1
|
|
344
|
-
while (++index < arrayLength) {
|
|
345
|
-
const item = array[index],
|
|
346
|
-
shouldIncludeItem = predicate(item, index, array)
|
|
347
|
-
if (isPromise(shouldIncludeItem)) {
|
|
348
|
-
return promiseAll(
|
|
349
|
-
arrayExtendMapWithIndex(
|
|
350
|
-
[shouldIncludeItem], array, predicate, index)).then(
|
|
351
|
-
curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
352
|
-
}
|
|
353
|
-
if (shouldIncludeItem) {
|
|
354
|
-
result[++resultIndex] = item
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
return result
|
|
358
|
-
}
|
|
359
|
-
|
|
360
282
|
const _filter = function (value, predicate) {
|
|
361
283
|
if (isArray(value)) {
|
|
362
284
|
return arrayFilter(value, predicate)
|
|
363
285
|
}
|
|
364
|
-
if (typeof value == 'function') {
|
|
365
|
-
if (isGeneratorFunction(value)) {
|
|
366
|
-
return generatorFunctionFilter(value, predicate)
|
|
367
|
-
}
|
|
368
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
369
|
-
return asyncGeneratorFunctionFilter(value, predicate)
|
|
370
|
-
}
|
|
371
|
-
return reducerFilter(value, predicate)
|
|
372
|
-
}
|
|
373
286
|
if (value == null) {
|
|
374
287
|
return value
|
|
375
288
|
}
|
|
@@ -400,37 +313,67 @@ const _filter = function (value, predicate) {
|
|
|
400
313
|
|
|
401
314
|
const filter = function (...args) {
|
|
402
315
|
const predicate = args.pop()
|
|
403
|
-
if (args.length
|
|
404
|
-
return _filter
|
|
316
|
+
if (args.length == 0) {
|
|
317
|
+
return curry2(_filter, __, predicate)
|
|
405
318
|
}
|
|
406
|
-
return
|
|
319
|
+
return _filter(args[0], predicate)
|
|
407
320
|
}
|
|
408
321
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
322
|
+
const areAnyValuesPromises = function (values) {
|
|
323
|
+
const length = values.length
|
|
324
|
+
let index = -1
|
|
325
|
+
while (++index < length) {
|
|
326
|
+
const value = values[index]
|
|
327
|
+
if (isPromise(value)) {
|
|
328
|
+
return true
|
|
329
|
+
}
|
|
412
330
|
}
|
|
413
|
-
|
|
331
|
+
return false
|
|
414
332
|
}
|
|
415
333
|
|
|
416
|
-
//
|
|
417
|
-
const
|
|
334
|
+
// argument resolver for curryArgs2
|
|
335
|
+
const curryArgs2ResolveArgs0 = (
|
|
336
|
+
baseFunc, arg1, arg2,
|
|
337
|
+
) => function args0Resolver(...args) {
|
|
338
|
+
return baseFunc(args, arg1)
|
|
339
|
+
}
|
|
418
340
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
341
|
+
// argument resolver for curryArgs2
|
|
342
|
+
const curryArgs2ResolveArgs1 = (
|
|
343
|
+
baseFunc, arg0, arg2,
|
|
344
|
+
) => function arg1Resolver(...args) {
|
|
345
|
+
return baseFunc(arg0, args)
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
349
|
+
if (arg0 == __) {
|
|
350
|
+
return curryArgs2ResolveArgs0(baseFunc, arg1)
|
|
425
351
|
}
|
|
426
|
-
return
|
|
352
|
+
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
427
353
|
}
|
|
428
354
|
|
|
429
|
-
|
|
430
|
-
|
|
355
|
+
// negate(value boolean) -> inverse boolean
|
|
356
|
+
const negate = value => !value
|
|
357
|
+
|
|
358
|
+
// _not(args Array, predicate function)
|
|
359
|
+
const _not = function (args, predicate) {
|
|
360
|
+
const boolean = predicate(...args)
|
|
361
|
+
return isPromise(boolean) ? boolean.then(negate) : !boolean
|
|
431
362
|
}
|
|
432
363
|
|
|
433
|
-
not
|
|
364
|
+
const not = function (...args) {
|
|
365
|
+
const predicateOrValue = args.pop()
|
|
366
|
+
if (typeof predicateOrValue == 'function') {
|
|
367
|
+
if (args.length == 0) {
|
|
368
|
+
return curryArgs2(_not, __, predicateOrValue)
|
|
369
|
+
}
|
|
370
|
+
if (areAnyValuesPromises(args)) {
|
|
371
|
+
return promiseAll(args).then(curry2(_not, __, predicateOrValue))
|
|
372
|
+
}
|
|
373
|
+
return _not(args, predicateOrValue)
|
|
374
|
+
}
|
|
375
|
+
return !predicateOrValue
|
|
376
|
+
}
|
|
434
377
|
|
|
435
378
|
const filterOut = predicate => filter(not(predicate))
|
|
436
379
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(n){return r(n,t)},curry2ResolveArg1=(r,t)=>function(n){return r(t,n)},curry2=function(r,t,n){return t==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,t)},symbolIterator=Symbol.iterator,FilteringIterator=(r,t)=>({[symbolIterator](){return this},next(){let n=r.next();for(;!n.done;){const{value:e}=n;if(t(e))return{value:e,done:!1};n=r.next()}return n}}),isPromise=r=>null!=r&&"function"==typeof r.then,symbolAsyncIterator=Symbol.asyncIterator,FilteringAsyncIterator=(r,t)=>({isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:n,done:e}=await r.next();if(e)this.isAsyncIteratorDone=!0;else{const r=t(n);if(isPromise(r)?await r:r)return{value:n,done:!1}}}return{value:void 0,done:!0}}}),isArray=Array.isArray,
|
|
7
|
+
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(n){return r(n,t)},curry2ResolveArg1=(r,t)=>function(n){return r(t,n)},curry2=function(r,t,n){return t==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,t)},symbolIterator=Symbol.iterator,FilteringIterator=(r,t)=>({[symbolIterator](){return this},next(){let n=r.next();for(;!n.done;){const{value:e}=n;if(t(e))return{value:e,done:!1};n=r.next()}return n}}),isPromise=r=>null!=r&&"function"==typeof r.then,symbolAsyncIterator=Symbol.asyncIterator,FilteringAsyncIterator=(r,t)=>({isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:n,done:e}=await r.next();if(e)this.isAsyncIteratorDone=!0;else{const r=t(n);if(isPromise(r)?await r:r)return{value:n,done:!1}}}return{value:void 0,done:!0}}}),isArray=Array.isArray,curry4ResolveArg0=(r,t,n,e)=>function(o){return r(o,t,n,e)},curry4ResolveArg1=(r,t,n,e)=>function(o){return r(t,o,n,e)},curry4ResolveArg2=(r,t,n,e)=>function(o){return r(t,n,o,e)},curry4ResolveArg3=(r,t,n,e)=>function(o){return r(t,n,e,o)},curry4=function(r,t,n,e,o){return t==__?curry4ResolveArg0(r,n,e,o):n==__?curry4ResolveArg1(r,t,e,o):e==__?curry4ResolveArg2(r,t,n,o):curry4ResolveArg3(r,t,n,e)},promiseAll=Promise.all.bind(Promise),arrayExtendMap=function(r,t,n,e){const o=t.length;let s=r.length-1;for(;++e<o;)r[++s]=n(t[e],e,r);return r},arrayFilterByConditions=function(r,t,n,e){const o=r.length;let s=-1;for(;++n<o;)e[++s]&&t.push(r[n]);return t},arrayFilter=function(r,t){const n=r.length,e=[];let o=-1,s=-1;for(;++o<n;){const n=r[o],i=t(n,o,r);if(isPromise(i))return promiseAll(arrayExtendMap([i],r,t,o)).then(curry4(arrayFilterByConditions,r,e,o-1,__));i&&(e[++s]=n)}return e},curry3ResolveArg0=(r,t,n)=>function(e){return r(e,t,n)},curry3ResolveArg1=(r,t,n)=>function(e){return r(t,e,n)},curry3ResolveArg2=(r,t,n)=>function(e){return r(t,n,e)},curry3=function(r,t,n,e){return t==__?curry3ResolveArg0(r,n,e):n==__?curry3ResolveArg1(r,t,e):curry3ResolveArg2(r,t,n)},callPropUnary=(r,t,n)=>r[t](n),stringFilter=function(r,t){const n=arrayFilter(r,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},always=r=>function(){return r},thunkConditional=(r,t,n)=>r?t():n(),thunkify1=(r,t)=>function(){return r(t)},noop=function(){},setFilter=function(r,t){const n=new Set,e=n.add.bind(n),o=[];for(const s of r){const i=t(s,s,r);isPromise(i)?o.push(i.then(curry3(thunkConditional,__,thunkify1(e,s),noop))):i&&n.add(s)}return 0==o.length?n:promiseAll(o).then(always(n))},thunkify4=(r,t,n,e,o)=>function(){return r(t,n,e,o)},callPropBinary=(r,t,n,e)=>r[t](n,e),mapFilter=function(r,t){const n=new Map,e=[];for(const[o,s]of r){const i=t(s,o,r);isPromise(i)?e.push(i.then(curry3(thunkConditional,__,thunkify4(callPropBinary,n,"set",o,s),noop))):i&&n.set(o,s)}return 0==e.length?n:promiseAll(e).then(always(n))},objectSetIf=function(r,t,n,e){e&&(r[t]=n)},objectFilter=function(r,t){const n={},e=[];for(const o in r){const s=r[o],i=t(s,o,r);isPromise(i)?e.push(i.then(curry4(objectSetIf,n,o,r[o],__))):i&&(n[o]=s)}return 0==e.length?n:promiseAll(e).then(always(n))},_filter=function(r,t){return isArray(r)?arrayFilter(r,t):null==r?r:"string"==typeof r||r.constructor==String?stringFilter(r,t):r.constructor==Set?setFilter(r,t):r.constructor==Map?mapFilter(r,t):"function"==typeof r.filter?r.filter(t):"function"==typeof r[symbolIterator]?FilteringIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?FilteringAsyncIterator(r[symbolAsyncIterator](),t):r.constructor==Object?objectFilter(r,t):r},filter=function(...r){const t=r.pop();return 0==r.length?curry2(_filter,__,t):_filter(r[0],t)},areAnyValuesPromises=function(r){const t=r.length;let n=-1;for(;++n<t;){const t=r[n];if(isPromise(t))return!0}return!1},curryArgs2ResolveArgs0=(r,t,n)=>function(...n){return r(n,t)},curryArgs2ResolveArgs1=(r,t,n)=>function(...n){return r(t,n)},curryArgs2=function(r,t,n){return t==__?curryArgs2ResolveArgs0(r,n):curryArgs2ResolveArgs1(r,t)},negate=r=>!r,_not=function(r,t){const n=t(...r);return isPromise(n)?n.then(negate):!n},not=function(...r){const t=r.pop();return"function"==typeof t?0==r.length?(n=_not,o=t,(e=__)==__?curryArgs2ResolveArgs0(n,o):curryArgs2ResolveArgs1(n,e)):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_not,__,t)):_not(r,t):!t;var n,e,o},filterOut=r=>filter(not(r));export default filterOut;
|