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/filter.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,17 +313,10 @@ 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
|
|
405
|
-
}
|
|
406
|
-
return curry2(_filter, __, predicate)
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
filter.withIndex = predicate => function filteringWithIndex(value) {
|
|
410
|
-
if (isArray(value)) {
|
|
411
|
-
return arrayFilterWithIndex(value, predicate)
|
|
316
|
+
if (args.length == 0) {
|
|
317
|
+
return curry2(_filter, __, predicate)
|
|
412
318
|
}
|
|
413
|
-
|
|
319
|
+
return _filter(args[0], predicate)
|
|
414
320
|
}
|
|
415
321
|
|
|
416
322
|
export default filter
|
package/dist/filter.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const __=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 i=r.length-1;for(;++e<o;)r[++i]=n(t[e],e,r);return r},arrayFilterByConditions=function(r,t,n,e){const o=r.length;let i=-1;for(;++n<o;)e[++i]&&t.push(r[n]);return t},arrayFilter=function(r,t){const n=r.length,e=[];let o=-1,i=-1;for(;++o<n;){const n=r[o],u=t(n,o,r);if(isPromise(u))return promiseAll(arrayExtendMap([u],r,t,o)).then(curry4(arrayFilterByConditions,r,e,o-1,__));u&&(e[++i]=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 i of r){const u=t(i,i,r);isPromise(u)?o.push(u.then(curry3(thunkConditional,__,thunkify1(e,i),noop))):u&&n.add(i)}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,i]of r){const u=t(i,o,r);isPromise(u)?e.push(u.then(curry3(thunkConditional,__,thunkify4(callPropBinary,n,"set",o,i),noop))):u&&n.set(o,i)}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 i=r[o],u=t(i,o,r);isPromise(u)?e.push(u.then(curry4(objectSetIf,n,o,r[o],__))):u&&(n[o]=i)}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?(n=_filter,o=t,(e=__)==__?curry2ResolveArg0(n,o):curry2ResolveArg1(n,e)):_filter(r[0],t);var n,e,o};export default filter;
|
package/dist/filter.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
|
|
|
@@ -78,20 +78,6 @@ const FilteringAsyncIterator = (asyncIterator, predicate) => ({
|
|
|
78
78
|
|
|
79
79
|
const isArray = Array.isArray
|
|
80
80
|
|
|
81
|
-
const objectProto = Object.prototype
|
|
82
|
-
|
|
83
|
-
const nativeObjectToString = objectProto.toString
|
|
84
|
-
|
|
85
|
-
const objectToString = value => nativeObjectToString.call(value)
|
|
86
|
-
|
|
87
|
-
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
88
|
-
|
|
89
|
-
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
90
|
-
|
|
91
|
-
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
92
|
-
|
|
93
|
-
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
94
|
-
|
|
95
81
|
// argument resolver for curry4
|
|
96
82
|
const curry4ResolveArg0 = (
|
|
97
83
|
baseFunc, arg1, arg2, arg3,
|
|
@@ -166,12 +152,11 @@ const arrayFilter = function (array, predicate) {
|
|
|
166
152
|
resultIndex = -1
|
|
167
153
|
while (++index < arrayLength) {
|
|
168
154
|
const item = array[index],
|
|
169
|
-
shouldIncludeItem = predicate(item)
|
|
155
|
+
shouldIncludeItem = predicate(item, index, array)
|
|
170
156
|
if (isPromise(shouldIncludeItem)) {
|
|
171
157
|
return promiseAll(
|
|
172
|
-
arrayExtendMap(
|
|
173
|
-
|
|
174
|
-
curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
158
|
+
arrayExtendMap([shouldIncludeItem], array, predicate, index)
|
|
159
|
+
).then(curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
175
160
|
}
|
|
176
161
|
if (shouldIncludeItem) {
|
|
177
162
|
result[++resultIndex] = item
|
|
@@ -180,18 +165,6 @@ const arrayFilter = function (array, predicate) {
|
|
|
180
165
|
return result
|
|
181
166
|
}
|
|
182
167
|
|
|
183
|
-
const generatorFunctionFilter = (
|
|
184
|
-
generatorFunction, predicate,
|
|
185
|
-
) => function* filteringGeneratorFunction(...args) {
|
|
186
|
-
yield* FilteringIterator(generatorFunction(...args), predicate)
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
const asyncGeneratorFunctionFilter = (
|
|
190
|
-
asyncGeneratorFunction, predicate,
|
|
191
|
-
) => async function* filteringAsyncGeneratorFunction(...args) {
|
|
192
|
-
yield* FilteringAsyncIterator(asyncGeneratorFunction(...args), predicate)
|
|
193
|
-
}
|
|
194
|
-
|
|
195
168
|
// argument resolver for curry3
|
|
196
169
|
const curry3ResolveArg0 = (
|
|
197
170
|
baseFunc, arg1, arg2,
|
|
@@ -223,29 +196,6 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
|
|
|
223
196
|
return curry3ResolveArg2(baseFunc, arg0, arg1)
|
|
224
197
|
}
|
|
225
198
|
|
|
226
|
-
const thunkify2 = (func, arg0, arg1) => function thunk() {
|
|
227
|
-
return func(arg0, arg1)
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
const thunkConditional = (
|
|
231
|
-
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
232
|
-
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
233
|
-
|
|
234
|
-
const always = value => function getter() { return value }
|
|
235
|
-
|
|
236
|
-
const reducerFilter = (
|
|
237
|
-
reducer, predicate,
|
|
238
|
-
) => function filteringReducer(result, item) {
|
|
239
|
-
const shouldInclude = predicate(item)
|
|
240
|
-
return isPromise(shouldInclude)
|
|
241
|
-
? shouldInclude.then(curry3(
|
|
242
|
-
thunkConditional,
|
|
243
|
-
__,
|
|
244
|
-
thunkify2(reducer, result, item),
|
|
245
|
-
always(result)))
|
|
246
|
-
: shouldInclude ? reducer(result, item) : result
|
|
247
|
-
}
|
|
248
|
-
|
|
249
199
|
const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
250
200
|
|
|
251
201
|
const stringFilter = function (string, predicate) {
|
|
@@ -255,6 +205,12 @@ const stringFilter = function (string, predicate) {
|
|
|
255
205
|
: filteredCharactersArray.join('')
|
|
256
206
|
}
|
|
257
207
|
|
|
208
|
+
const always = value => function getter() { return value }
|
|
209
|
+
|
|
210
|
+
const thunkConditional = (
|
|
211
|
+
conditionalExpression, thunkOnTruthy, thunkOnFalsy,
|
|
212
|
+
) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
|
|
213
|
+
|
|
258
214
|
const thunkify1 = (func, arg0) => function thunk() {
|
|
259
215
|
return func(arg0)
|
|
260
216
|
}
|
|
@@ -329,53 +285,10 @@ const objectFilter = function (object, predicate) {
|
|
|
329
285
|
: promiseAll(promises).then(always(result))
|
|
330
286
|
}
|
|
331
287
|
|
|
332
|
-
const arrayExtendMapWithIndex = function (
|
|
333
|
-
array, values, valuesMapper, valuesIndex,
|
|
334
|
-
) {
|
|
335
|
-
const valuesLength = values.length
|
|
336
|
-
let arrayIndex = array.length - 1
|
|
337
|
-
|
|
338
|
-
while (++valuesIndex < valuesLength) {
|
|
339
|
-
array[++arrayIndex] = valuesMapper(
|
|
340
|
-
values[valuesIndex], valuesIndex, values)
|
|
341
|
-
}
|
|
342
|
-
return array
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
const arrayFilterWithIndex = function (array, predicate) {
|
|
346
|
-
const arrayLength = array.length,
|
|
347
|
-
result = []
|
|
348
|
-
let index = -1,
|
|
349
|
-
resultIndex = -1
|
|
350
|
-
while (++index < arrayLength) {
|
|
351
|
-
const item = array[index],
|
|
352
|
-
shouldIncludeItem = predicate(item, index, array)
|
|
353
|
-
if (isPromise(shouldIncludeItem)) {
|
|
354
|
-
return promiseAll(
|
|
355
|
-
arrayExtendMapWithIndex(
|
|
356
|
-
[shouldIncludeItem], array, predicate, index)).then(
|
|
357
|
-
curry4(arrayFilterByConditions, array, result, index - 1, __))
|
|
358
|
-
}
|
|
359
|
-
if (shouldIncludeItem) {
|
|
360
|
-
result[++resultIndex] = item
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
return result
|
|
364
|
-
}
|
|
365
|
-
|
|
366
288
|
const _filter = function (value, predicate) {
|
|
367
289
|
if (isArray(value)) {
|
|
368
290
|
return arrayFilter(value, predicate)
|
|
369
291
|
}
|
|
370
|
-
if (typeof value == 'function') {
|
|
371
|
-
if (isGeneratorFunction(value)) {
|
|
372
|
-
return generatorFunctionFilter(value, predicate)
|
|
373
|
-
}
|
|
374
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
375
|
-
return asyncGeneratorFunctionFilter(value, predicate)
|
|
376
|
-
}
|
|
377
|
-
return reducerFilter(value, predicate)
|
|
378
|
-
}
|
|
379
292
|
if (value == null) {
|
|
380
293
|
return value
|
|
381
294
|
}
|
|
@@ -406,17 +319,10 @@ const _filter = function (value, predicate) {
|
|
|
406
319
|
|
|
407
320
|
const filter = function (...args) {
|
|
408
321
|
const predicate = args.pop()
|
|
409
|
-
if (args.length
|
|
410
|
-
return _filter
|
|
411
|
-
}
|
|
412
|
-
return curry2(_filter, __, predicate)
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
filter.withIndex = predicate => function filteringWithIndex(value) {
|
|
416
|
-
if (isArray(value)) {
|
|
417
|
-
return arrayFilterWithIndex(value, predicate)
|
|
322
|
+
if (args.length == 0) {
|
|
323
|
+
return curry2(_filter, __, predicate)
|
|
418
324
|
}
|
|
419
|
-
|
|
325
|
+
return _filter(args[0], predicate)
|
|
420
326
|
}
|
|
421
327
|
|
|
422
328
|
return filter
|
package/dist/filter.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.filter=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=Symbol.iterator,e=(n,e)=>({[t](){return this},next(){let t=n.next();for(;!t.done;){const{value:o}=t;if(e(o))return{value:o,done:!1};t=n.next()}return t}}),o=n=>null!=n&&"function"==typeof n.then,r=Symbol.asyncIterator,u=(n,t)=>({isAsyncIteratorDone:!1,[r](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:e,done:r}=await n.next();if(r)this.isAsyncIteratorDone=!0;else{const n=t(e);if(o(n)?await n:n)return{value:e,done:!1}}}return{value:void 0,done:!0}}}),c=Array.isArray,i=
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.filter=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=Symbol.iterator,e=(n,e)=>({[t](){return this},next(){let t=n.next();for(;!t.done;){const{value:o}=t;if(e(o))return{value:o,done:!1};t=n.next()}return t}}),o=n=>null!=n&&"function"==typeof n.then,r=Symbol.asyncIterator,u=(n,t)=>({isAsyncIteratorDone:!1,[r](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:e,done:r}=await n.next();if(r)this.isAsyncIteratorDone=!0;else{const n=t(e);if(o(n)?await n:n)return{value:e,done:!1}}}return{value:void 0,done:!0}}}),c=Array.isArray,i=function(t,e,o,r,u){return e==n?((n,t,e,o)=>function(r){return n(r,t,e,o)})(t,o,r,u):o==n?((n,t,e,o)=>function(r){return n(t,r,e,o)})(t,e,r,u):r==n?((n,t,e,o)=>function(r){return n(t,e,r,o)})(t,e,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(t,e,o,r)},f=Promise.all.bind(Promise),s=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},l=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},h=function(t,e){const r=t.length,u=[];let c=-1,h=-1;for(;++c<r;){const r=t[c],a=e(r,c,t);if(o(a))return f(s([a],t,e,c)).then(i(l,t,u,c-1,n));a&&(u[++h]=r)}return u},a=function(t,e,o,r){return e==n?((n,t,e)=>function(o){return n(o,t,e)})(t,o,r):o==n?((n,t,e)=>function(o){return n(t,o,e)})(t,e,r):((n,t,e)=>function(o){return n(t,e,o)})(t,e,o)},p=(n,t,e)=>n[t](e),y=n=>function(){return n},d=(n,t,e)=>n?t():e(),g=(n,t)=>function(){return n(t)},b=function(){},m=(n,t,e,o,r)=>function(){return n(t,e,o,r)},v=(n,t,e,o)=>n[t](e,o),x=function(n,t,e,o){o&&(n[t]=e)},S=function(s,l){return c(s)?h(s,l):null==s?s:"string"==typeof s||s.constructor==String?function(t,e){const r=h(t,e);return o(r)?r.then(a(p,n,"join","")):r.join("")}(s,l):s.constructor==Set?function(t,e){const r=new Set,u=r.add.bind(r),c=[];for(const i of t){const f=e(i,i,t);o(f)?c.push(f.then(a(d,n,g(u,i),b))):f&&r.add(i)}return 0==c.length?r:f(c).then(y(r))}(s,l):s.constructor==Map?function(t,e){const r=new Map,u=[];for(const[c,i]of t){const f=e(i,c,t);o(f)?u.push(f.then(a(d,n,m(v,r,"set",c,i),b))):f&&r.set(c,i)}return 0==u.length?r:f(u).then(y(r))}(s,l):"function"==typeof s.filter?s.filter(l):"function"==typeof s[t]?e(s[t](),l):"function"==typeof s[r]?u(s[r](),l):s.constructor==Object?function(t,e){const r={},u=[];for(const c in t){const f=t[c],s=e(f,c,t);o(s)?u.push(s.then(i(x,r,c,t[c],n))):s&&(r[c]=f)}return 0==u.length?r:f(u).then(y(r))}(s,l):s};return function(...t){const e=t.pop();return 0==t.length?(o=S,u=e,(r=n)==n?((n,t)=>function(e){return n(e,t)})(o,u):((n,t)=>function(e){return n(t,e)})(o,r)):S(t[0],e);var o,r,u}}());
|
package/dist/filter.min.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const __=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 i=r.length-1;for(;++e<o;)r[++i]=n(t[e],e,r);return r},arrayFilterByConditions=function(r,t,n,e){const o=r.length;let i=-1;for(;++n<o;)e[++i]&&t.push(r[n]);return t},arrayFilter=function(r,t){const n=r.length,e=[];let o=-1,i=-1;for(;++o<n;){const n=r[o],u=t(n,o,r);if(isPromise(u))return promiseAll(arrayExtendMap([u],r,t,o)).then(curry4(arrayFilterByConditions,r,e,o-1,__));u&&(e[++i]=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 i of r){const u=t(i,i,r);isPromise(u)?o.push(u.then(curry3(thunkConditional,__,thunkify1(e,i),noop))):u&&n.add(i)}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,i]of r){const u=t(i,o,r);isPromise(u)?e.push(u.then(curry3(thunkConditional,__,thunkify4(callPropBinary,n,"set",o,i),noop))):u&&n.set(o,i)}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 i=r[o],u=t(i,o,r);isPromise(u)?e.push(u.then(curry4(objectSetIf,n,o,r[o],__))):u&&(n[o]=i)}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?(n=_filter,o=t,(e=__)==__?curry2ResolveArg0(n,o):curry2ResolveArg1(n,e)):_filter(r[0],t);var n,e,o};export default filter;
|
package/dist/filter.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')
|
|
@@ -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,17 +313,10 @@ 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
|
|
405
|
-
}
|
|
406
|
-
return curry2(_filter, __, predicate)
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
filter.withIndex = predicate => function filteringWithIndex(value) {
|
|
410
|
-
if (isArray(value)) {
|
|
411
|
-
return arrayFilterWithIndex(value, predicate)
|
|
316
|
+
if (args.length == 0) {
|
|
317
|
+
return curry2(_filter, __, predicate)
|
|
412
318
|
}
|
|
413
|
-
|
|
319
|
+
return _filter(args[0], predicate)
|
|
414
320
|
}
|
|
415
321
|
|
|
416
322
|
export default filter
|