rubico 1.9.7 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +5 -0
- package/.eslintrc.js +3 -2
- package/.github/workflows/nodejs.yml +1 -1
- package/AggregateReducer.js +19 -0
- package/AggregateReducer.test.js +82 -0
- package/CHANGELOG.md +22 -1
- package/README.md +158 -81
- package/Transducer.js +75 -26
- package/Transducer.test.js +117 -0
- package/_internal/ComparisonOperator.js +68 -0
- package/_internal/File.js +41 -0
- package/_internal/FlatMappingAsyncIterator.js +4 -4
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/TimeInLoopSuite.js +138 -0
- package/_internal/areAnyValuesPromises.js +23 -0
- package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
- package/_internal/arrayExtend.js +3 -2
- package/_internal/arrayFilter.js +3 -4
- package/_internal/{arrayAny.js → arraySome.js} +8 -8
- package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
- package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
- package/_internal/curry4.test.js +25 -0
- package/_internal/curry5.test.js +29 -0
- package/_internal/curryArgs2.js +43 -0
- package/_internal/curryArgs3.test.js +21 -0
- package/_internal/curryArgs4.js +65 -0
- package/_internal/curryArgs4.test.js +25 -0
- package/_internal/equals.js +13 -0
- package/_internal/findAllFilePaths.js +22 -0
- package/_internal/funcApply.js +2 -0
- package/_internal/funcCall.js +14 -0
- package/_internal/functionArrayAll.js +26 -0
- package/_internal/functionArrayAllSeries.js +55 -0
- package/_internal/functionObjectAll.js +32 -0
- package/_internal/genericReduce.js +4 -22
- package/_internal/genericTransform.js +15 -15
- package/_internal/improvedGenericTransform.js +93 -0
- package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
- package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
- package/_internal/leftResolverRightResolverCompare.js +19 -0
- package/_internal/leftResolverRightValueCompare.js +16 -0
- package/_internal/leftValueRightResolverCompare.js +16 -0
- package/_internal/objectReduce.js +0 -1
- package/_internal/pathResolve.js +6 -0
- package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
- package/_internal/reducerFlatMap.js +4 -4
- package/_internal/reducerFlatten.js +1 -1
- package/_internal/{reducerAny.js → reducerSome.js} +4 -4
- package/_internal/timeInLoop.js +37 -0
- package/_internal/timeInLoop.test.js +18 -0
- package/_internal/timeInLoopAsync.js +35 -0
- package/_internal/timeInLoopAsync.test.js +22 -0
- package/all.js +106 -40
- package/and.js +54 -36
- package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
- package/archive/_Promise-2023-05-29.js +93 -0
- package/archive/arrayMap2-2023-05-29.js +73 -0
- package/archive/benchmarks-v1.9.7/all.js +34 -0
- package/archive/benchmarks-v1.9.7/and.js +24 -0
- package/archive/benchmarks-v1.9.7/assign.js +174 -0
- package/archive/benchmarks-v1.9.7/curry.js +55 -0
- package/archive/benchmarks-v1.9.7/eq.js +25 -0
- package/archive/benchmarks-v1.9.7/filter.js +1322 -0
- package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
- package/archive/benchmarks-v1.9.7/get.js +44 -0
- package/archive/benchmarks-v1.9.7/gt.js +25 -0
- package/archive/benchmarks-v1.9.7/gte.js +25 -0
- package/archive/benchmarks-v1.9.7/lt.js +25 -0
- package/archive/benchmarks-v1.9.7/lte.js +25 -0
- package/archive/benchmarks-v1.9.7/map.js +892 -0
- package/archive/benchmarks-v1.9.7/omit.js +28 -0
- package/archive/benchmarks-v1.9.7/or.js +51 -0
- package/archive/benchmarks-v1.9.7/pick.js +24 -0
- package/archive/benchmarks-v1.9.7/pipe.js +152 -0
- package/archive/benchmarks-v1.9.7/reduce.js +739 -0
- package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
- package/archive/benchmarks-v1.9.7/tap.js +90 -0
- package/archive/benchmarks-v1.9.7/transform.js +218 -0
- package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
- package/assign.js +18 -8
- package/bench +65 -0
- package/benchmark-output/v1.9.7 +268 -0
- package/benchmarks/all.async.js +43 -0
- package/benchmarks/all.js +42 -33
- package/benchmarks/always.js +15 -0
- package/benchmarks/and.async.js +25 -0
- package/benchmarks/and.js +20 -19
- package/benchmarks/assign.async.js +27 -0
- package/benchmarks/assign.js +20 -167
- package/benchmarks/curry.js +34 -54
- package/benchmarks/eq.async.js +23 -0
- package/benchmarks/eq.js +17 -19
- package/benchmarks/every.async.js +19 -0
- package/benchmarks/every.js +19 -0
- package/benchmarks/filter.async.js +32 -0
- package/benchmarks/filter.js +27 -1311
- package/benchmarks/flatMap.async.js +26 -0
- package/benchmarks/flatMap.js +26 -36
- package/benchmarks/get.async.js +19 -0
- package/benchmarks/get.js +27 -32
- package/benchmarks/gt.async.js +23 -0
- package/benchmarks/gt.js +17 -19
- package/benchmarks/gte.async.js +23 -0
- package/benchmarks/gte.js +17 -19
- package/benchmarks/lt.async.js +23 -0
- package/benchmarks/lt.js +17 -19
- package/benchmarks/lte.async.js +23 -0
- package/benchmarks/lte.js +17 -19
- package/benchmarks/map.async.js +43 -0
- package/benchmarks/map.js +24 -876
- package/benchmarks/misc/Promise.js +26 -0
- package/benchmarks/misc/isPromise.js +30 -0
- package/benchmarks/misc/promiseAll.js +36 -0
- package/benchmarks/not.js +23 -0
- package/benchmarks/omit.js +30 -20
- package/benchmarks/or.async.js +25 -0
- package/benchmarks/or.js +23 -49
- package/benchmarks/pick.js +30 -16
- package/benchmarks/pipe.async.js +47 -0
- package/benchmarks/pipe.js +46 -151
- package/benchmarks/reduce.async.js +32 -0
- package/benchmarks/reduce.js +27 -728
- package/benchmarks/set.async.js +19 -0
- package/benchmarks/set.js +41 -0
- package/benchmarks/some.async.js +19 -0
- package/benchmarks/some.js +19 -0
- package/benchmarks/switchCase.async.js +27 -0
- package/benchmarks/switchCase.js +55 -256
- package/benchmarks/tap.js +10 -85
- package/benchmarks/thunkify.js +15 -0
- package/benchmarks/transform.async.js +27 -0
- package/benchmarks/transform.js +28 -206
- package/benchmarks/tryCatch.async.js +25 -0
- package/benchmarks/tryCatch.js +24 -100
- package/build +472 -0
- package/compose.js +46 -0
- package/dist/Transducer.es.js +481 -0
- package/dist/Transducer.es.min.js +7 -0
- package/dist/Transducer.js +488 -0
- package/dist/Transducer.min.js +8 -0
- package/dist/Transducer.mjs +481 -0
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +173 -92
- package/dist/all.es.min.js +3 -3
- package/dist/all.js +173 -92
- package/dist/all.min.js +3 -3
- package/dist/all.mjs +173 -92
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +101 -32
- package/dist/and.es.min.js +3 -3
- package/dist/and.js +101 -32
- package/dist/and.min.js +3 -3
- package/dist/and.mjs +101 -32
- package/dist/assign.es.js +37 -10
- package/dist/assign.es.min.js +3 -3
- package/dist/assign.js +37 -10
- package/dist/assign.min.js +3 -3
- package/dist/assign.mjs +37 -10
- package/dist/compose.es.js +71 -0
- package/dist/compose.es.min.js +7 -0
- package/dist/compose.js +78 -0
- package/dist/compose.min.js +8 -0
- package/dist/compose.mjs +71 -0
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +172 -49
- package/dist/eq.es.min.js +3 -3
- package/dist/eq.js +172 -49
- package/dist/eq.min.js +3 -3
- package/dist/eq.mjs +172 -49
- package/dist/every.es.js +194 -0
- package/dist/every.es.min.js +7 -0
- package/dist/every.js +201 -0
- package/dist/every.min.js +8 -0
- package/dist/every.mjs +194 -0
- package/dist/filter.es.js +14 -108
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +14 -108
- package/dist/filter.min.js +3 -3
- package/dist/filter.mjs +14 -108
- package/dist/flatMap.es.js +27 -214
- package/dist/flatMap.es.min.js +3 -3
- package/dist/flatMap.js +27 -214
- package/dist/flatMap.min.js +3 -3
- package/dist/flatMap.mjs +27 -214
- package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
- package/dist/forEach.es.min.js +7 -0
- package/dist/{x/forEach.js → forEach.js} +52 -70
- package/dist/forEach.min.js +8 -0
- package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
- package/dist/get.es.js +60 -5
- package/dist/get.es.min.js +3 -3
- package/dist/get.js +60 -5
- package/dist/get.min.js +3 -3
- package/dist/get.mjs +60 -5
- package/dist/gt.es.js +171 -48
- package/dist/gt.es.min.js +3 -3
- package/dist/gt.js +171 -48
- package/dist/gt.min.js +3 -3
- package/dist/gt.mjs +171 -48
- package/dist/gte.es.js +171 -48
- package/dist/gte.es.min.js +3 -3
- package/dist/gte.js +171 -48
- package/dist/gte.min.js +3 -3
- package/dist/gte.mjs +171 -48
- package/dist/lt.es.js +171 -48
- package/dist/lt.es.min.js +3 -3
- package/dist/lt.js +171 -48
- package/dist/lt.min.js +3 -3
- package/dist/lt.mjs +171 -48
- package/dist/lte.es.js +171 -48
- package/dist/lte.es.min.js +3 -3
- package/dist/lte.js +171 -48
- package/dist/lte.min.js +3 -3
- package/dist/lte.mjs +171 -48
- package/dist/map.es.js +12 -101
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +12 -101
- package/dist/map.min.js +3 -3
- package/dist/map.mjs +12 -101
- package/dist/not.es.js +75 -14
- package/dist/not.es.min.js +3 -3
- package/dist/not.js +75 -14
- package/dist/not.min.js +3 -3
- package/dist/not.mjs +75 -14
- package/dist/omit.es.js +7 -2
- package/dist/omit.es.min.js +3 -3
- package/dist/omit.js +7 -2
- package/dist/omit.min.js +3 -3
- package/dist/omit.mjs +7 -2
- package/dist/or.es.js +99 -31
- package/dist/or.es.min.js +3 -3
- package/dist/or.js +99 -31
- package/dist/or.min.js +3 -3
- package/dist/or.mjs +99 -31
- package/dist/pick.es.js +8 -3
- package/dist/pick.es.min.js +3 -3
- package/dist/pick.js +8 -3
- package/dist/pick.min.js +3 -3
- package/dist/pick.mjs +8 -3
- package/dist/pipe.es.js +42 -46
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +42 -46
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.mjs +42 -46
- package/dist/reduce.es.js +52 -94
- package/dist/reduce.es.min.js +3 -3
- package/dist/reduce.js +52 -94
- package/dist/reduce.min.js +3 -3
- package/dist/reduce.mjs +52 -94
- package/dist/rubico.es.js +762 -883
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.global.js +2794 -0
- package/dist/rubico.global.min.js +8 -0
- package/dist/rubico.js +739 -869
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.mjs +762 -883
- package/dist/set.es.js +18 -3
- package/dist/set.es.min.js +3 -3
- package/dist/set.js +18 -3
- package/dist/set.min.js +3 -3
- package/dist/set.mjs +18 -3
- package/dist/{any.js → some.es.js} +64 -54
- package/dist/some.es.min.js +7 -0
- package/dist/{any.mjs → some.js} +72 -48
- package/dist/some.min.js +8 -0
- package/dist/{any.es.js → some.mjs} +65 -48
- package/dist/switchCase.es.js +55 -5
- package/dist/switchCase.es.min.js +3 -3
- package/dist/switchCase.js +55 -5
- package/dist/switchCase.min.js +3 -3
- package/dist/switchCase.mjs +55 -5
- package/dist/tap.es.js +2 -9
- package/dist/tap.es.min.js +3 -3
- package/dist/tap.js +2 -9
- package/dist/tap.min.js +3 -3
- package/dist/tap.mjs +2 -9
- package/dist/thunkify.es.js +45 -2
- package/dist/thunkify.es.min.js +3 -3
- package/dist/thunkify.js +45 -2
- package/dist/thunkify.min.js +3 -3
- package/dist/thunkify.mjs +45 -2
- package/dist/transform.es.js +35 -71
- package/dist/transform.es.min.js +3 -3
- package/dist/transform.js +35 -71
- package/dist/transform.min.js +3 -3
- package/dist/transform.mjs +35 -71
- package/dist/tryCatch.es.js +33 -17
- package/dist/tryCatch.es.min.js +3 -3
- package/dist/tryCatch.js +33 -17
- package/dist/tryCatch.min.js +3 -3
- package/dist/tryCatch.mjs +33 -17
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +7 -7
- package/dist/x/differenceWith.es.min.js +3 -3
- package/dist/x/differenceWith.js +7 -7
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.mjs +7 -7
- package/dist/x/filterOut.es.js +60 -117
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +60 -117
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.mjs +60 -117
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +20 -207
- package/dist/x/flatten.es.min.js +3 -3
- package/dist/x/flatten.js +20 -207
- package/dist/x/flatten.min.js +3 -3
- package/dist/x/flatten.mjs +20 -207
- package/dist/x/groupBy.es.js +52 -94
- package/dist/x/groupBy.es.min.js +3 -3
- package/dist/x/groupBy.js +52 -94
- package/dist/x/groupBy.min.js +3 -3
- package/dist/x/groupBy.mjs +52 -94
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +59 -6
- package/dist/x/maxBy.es.min.js +3 -3
- package/dist/x/maxBy.js +59 -6
- package/dist/x/maxBy.min.js +3 -3
- package/dist/x/maxBy.mjs +59 -6
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +32 -103
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +32 -103
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.mjs +32 -103
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -9
- package/dist/x/trace.es.min.js +3 -3
- package/dist/x/trace.js +2 -9
- package/dist/x/trace.min.js +3 -3
- package/dist/x/trace.mjs +2 -9
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.mjs +2 -2
- package/dist-test.js +31 -2042
- package/eq.js +21 -63
- package/es.js +739 -869
- package/every.js +94 -0
- package/filter.js +23 -91
- package/flatMap.js +75 -70
- package/forEach.js +82 -0
- package/get.js +23 -6
- package/global.js +6 -4
- package/gt.js +15 -58
- package/gte.js +14 -57
- package/index.js +739 -869
- package/lt.js +17 -60
- package/lte.js +14 -57
- package/map.js +9 -94
- package/memory-usage/reduce.js +2 -2
- package/not.js +27 -45
- package/omit.js +4 -0
- package/or.js +50 -33
- package/package.json +7 -7
- package/pick.js +5 -1
- package/pipe.js +13 -50
- package/reduce.js +42 -51
- package/rubico.js +22 -11
- package/set.js +43 -10
- package/some.js +105 -0
- package/switchCase.js +13 -3
- package/tap.js +0 -24
- package/test.js +847 -1096
- package/thunkify.js +9 -0
- package/tmp.js +1 -0
- package/transform.js +31 -16
- package/tryCatch.js +19 -15
- package/x/differenceWith.js +3 -3
- package/x/filterOut.test.js +6 -6
- package/x/flatten.js +1 -1
- package/x/flatten.test.js +0 -8
- package/x/index.js +0 -2
- package/x/pluck.js +18 -27
- package/x/pluck.test.js +3 -7
- package/x/timeInLoop.js +16 -25
- package/x/timeInLoop.test.js +8 -4
- package/any.js +0 -82
- package/dist/__.min.mjs +0 -7
- package/dist/all.min.mjs +0 -7
- package/dist/always.min.mjs +0 -7
- package/dist/and.min.mjs +0 -7
- package/dist/any.es.min.js +0 -7
- package/dist/any.min.js +0 -8
- package/dist/any.min.mjs +0 -7
- package/dist/assign.min.mjs +0 -7
- package/dist/curry.min.mjs +0 -7
- package/dist/eq.min.mjs +0 -7
- package/dist/filter.min.mjs +0 -7
- package/dist/flatMap.min.mjs +0 -7
- package/dist/fork.es.js +0 -159
- package/dist/fork.es.min.js +0 -7
- package/dist/fork.js +0 -166
- package/dist/fork.min.js +0 -8
- package/dist/fork.min.mjs +0 -7
- package/dist/fork.mjs +0 -159
- package/dist/get.min.mjs +0 -7
- package/dist/gt.min.mjs +0 -7
- package/dist/gte.min.mjs +0 -7
- package/dist/lt.min.mjs +0 -7
- package/dist/lte.min.mjs +0 -7
- package/dist/map.min.mjs +0 -7
- package/dist/not.min.mjs +0 -7
- package/dist/omit.min.mjs +0 -7
- package/dist/or.min.mjs +0 -7
- package/dist/pick.min.mjs +0 -7
- package/dist/pipe.min.mjs +0 -7
- package/dist/reduce.min.mjs +0 -7
- package/dist/rubico.min.mjs +0 -7
- package/dist/set.min.mjs +0 -7
- package/dist/switchCase.min.mjs +0 -7
- package/dist/tap.min.mjs +0 -7
- package/dist/thunkify.min.mjs +0 -7
- package/dist/transform.min.mjs +0 -7
- package/dist/tryCatch.min.mjs +0 -7
- package/dist/x/append.min.mjs +0 -7
- package/dist/x/callProp.min.mjs +0 -7
- package/dist/x/defaultsDeep.min.mjs +0 -7
- package/dist/x/differenceWith.min.mjs +0 -7
- package/dist/x/filterOut.min.mjs +0 -7
- package/dist/x/find.min.mjs +0 -7
- package/dist/x/findIndex.min.mjs +0 -7
- package/dist/x/first.min.mjs +0 -7
- package/dist/x/flatten.min.mjs +0 -7
- package/dist/x/forEach.es.min.js +0 -7
- package/dist/x/forEach.min.js +0 -8
- package/dist/x/forEach.min.mjs +0 -7
- package/dist/x/groupBy.min.mjs +0 -7
- package/dist/x/has.min.mjs +0 -7
- package/dist/x/identity.min.mjs +0 -7
- package/dist/x/includes.min.mjs +0 -7
- package/dist/x/isDeepEqual.min.mjs +0 -7
- package/dist/x/isEmpty.min.mjs +0 -7
- package/dist/x/isEqual.min.mjs +0 -7
- package/dist/x/isFunction.min.mjs +0 -7
- package/dist/x/isIn.min.mjs +0 -7
- package/dist/x/isObject.min.mjs +0 -7
- package/dist/x/isString.min.mjs +0 -7
- package/dist/x/keys.min.mjs +0 -7
- package/dist/x/last.min.mjs +0 -7
- package/dist/x/maxBy.min.mjs +0 -7
- package/dist/x/noop.min.mjs +0 -7
- package/dist/x/pluck.min.mjs +0 -7
- package/dist/x/prepend.min.mjs +0 -7
- package/dist/x/size.min.mjs +0 -7
- package/dist/x/trace.min.mjs +0 -7
- package/dist/x/unionWith.min.mjs +0 -7
- package/dist/x/uniq.min.mjs +0 -7
- package/dist/x/unless.min.mjs +0 -7
- package/dist/x/values.min.mjs +0 -7
- package/dist/x/when.min.mjs +0 -7
- package/distributor.js +0 -495
- package/fork.js +0 -101
- package/x/forEach.js +0 -93
- package/x/forEach.test.js +0 -218
- /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
- /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
- /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
package/dist/x/flatten.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -470,13 +470,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
470
470
|
|
|
471
471
|
const objectKeys = Object.keys
|
|
472
472
|
|
|
473
|
-
const objectGetFirstKey = function (object) {
|
|
474
|
-
for (const key in object) {
|
|
475
|
-
return key
|
|
476
|
-
}
|
|
477
|
-
return undefined
|
|
478
|
-
}
|
|
479
|
-
|
|
480
473
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
481
474
|
const keysLength = keys.length
|
|
482
475
|
while (++index < keysLength) {
|
|
@@ -537,18 +530,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
537
530
|
return result
|
|
538
531
|
}
|
|
539
532
|
|
|
540
|
-
const generatorFunctionReduce = (
|
|
541
|
-
generatorFunction, reducer, result,
|
|
542
|
-
) => funcConcatSync(
|
|
543
|
-
generatorFunction,
|
|
544
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
545
|
-
|
|
546
|
-
const asyncGeneratorFunctionReduce = (
|
|
547
|
-
asyncGeneratorFunction, reducer, result,
|
|
548
|
-
) => funcConcatSync(
|
|
549
|
-
asyncGeneratorFunction,
|
|
550
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
551
|
-
|
|
552
533
|
const reducerConcat = (
|
|
553
534
|
reducerA, reducerB,
|
|
554
535
|
) => function pipedReducer(result, item) {
|
|
@@ -558,26 +539,10 @@ const reducerConcat = (
|
|
|
558
539
|
: reducerB(intermediate, item)
|
|
559
540
|
}
|
|
560
541
|
|
|
561
|
-
const genericReduce = function (
|
|
562
|
-
const collection = args[0]
|
|
542
|
+
const genericReduce = function (collection, reducer, result) {
|
|
563
543
|
if (isArray(collection)) {
|
|
564
544
|
return arrayReduce(collection, reducer, result)
|
|
565
545
|
}
|
|
566
|
-
if (typeof collection == 'function') {
|
|
567
|
-
if (isGeneratorFunction(collection)) {
|
|
568
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
569
|
-
}
|
|
570
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
571
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
572
|
-
}
|
|
573
|
-
return curryArgs3(
|
|
574
|
-
genericReduce,
|
|
575
|
-
__,
|
|
576
|
-
args.length == 1
|
|
577
|
-
? reducerConcat(reducer, collection)
|
|
578
|
-
: args.reduce(reducerConcat, reducer),
|
|
579
|
-
result)
|
|
580
|
-
}
|
|
581
546
|
if (collection == null) {
|
|
582
547
|
return result === undefined
|
|
583
548
|
? curry2(reducer, collection, __)
|
|
@@ -631,7 +596,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
631
596
|
return iteration
|
|
632
597
|
}
|
|
633
598
|
const monadAsArray = genericReduce(
|
|
634
|
-
|
|
599
|
+
flatMapper(iteration.value),
|
|
635
600
|
arrayPush,
|
|
636
601
|
[]) // this will always have at least one item
|
|
637
602
|
if (monadAsArray.length > 1) {
|
|
@@ -677,12 +642,12 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
677
642
|
} else {
|
|
678
643
|
const monad = flatMapper(value)
|
|
679
644
|
if (isPromise(monad)) {
|
|
680
|
-
const bufferLoading =
|
|
681
|
-
|
|
645
|
+
const bufferLoading =
|
|
646
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
682
647
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
683
648
|
promises.add(promise)
|
|
684
649
|
} else {
|
|
685
|
-
const bufferLoading = genericReduce(
|
|
650
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
686
651
|
if (isPromise(bufferLoading)) {
|
|
687
652
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
688
653
|
promises.add(promise)
|
|
@@ -702,8 +667,6 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
702
667
|
}
|
|
703
668
|
}
|
|
704
669
|
|
|
705
|
-
const isBinary = ArrayBuffer.isView
|
|
706
|
-
|
|
707
670
|
const arrayMap = function (array, mapper) {
|
|
708
671
|
const arrayLength = array.length,
|
|
709
672
|
result = Array(arrayLength)
|
|
@@ -817,165 +780,10 @@ const stringFlatMap = function (string, flatMapper) {
|
|
|
817
780
|
: arrayFlattenToString(monadArray)
|
|
818
781
|
}
|
|
819
782
|
|
|
820
|
-
const
|
|
821
|
-
stream.write(chunk, encoding, callback)
|
|
822
|
-
return stream
|
|
823
|
-
}
|
|
824
|
-
|
|
825
|
-
const streamFlatExtend = async function (stream, item) {
|
|
826
|
-
const resultStreamWrite = curry2(streamWrite, stream, __),
|
|
827
|
-
// resultStreamWriteReducer = (_, subItem) => stream.write(subItem),
|
|
828
|
-
resultStreamWriteReducer = funcConcatSync(getArg1, resultStreamWrite),
|
|
829
|
-
promises = []
|
|
830
|
-
if (isArray(item)) {
|
|
831
|
-
const itemLength = item.length
|
|
832
|
-
let itemIndex = -1
|
|
833
|
-
while (++itemIndex < itemLength) {
|
|
834
|
-
stream.write(item[itemIndex])
|
|
835
|
-
}
|
|
836
|
-
} else if (item == null) {
|
|
837
|
-
stream.write(item)
|
|
838
|
-
} else if (typeof item[symbolIterator] == 'function') {
|
|
839
|
-
for (const subItem of item) {
|
|
840
|
-
stream.write(subItem)
|
|
841
|
-
}
|
|
842
|
-
} else if (typeof item[symbolAsyncIterator] == 'function') {
|
|
843
|
-
promises.push(
|
|
844
|
-
asyncIteratorForEach(item[symbolAsyncIterator](), resultStreamWrite))
|
|
845
|
-
} else if (typeof item.chain == 'function') {
|
|
846
|
-
const monadValue = item.chain(identity)
|
|
847
|
-
isPromise(monadValue)
|
|
848
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
849
|
-
: stream.write(monadValue)
|
|
850
|
-
} else if (typeof item.flatMap == 'function') {
|
|
851
|
-
const monadValue = item.flatMap(identity)
|
|
852
|
-
isPromise(monadValue)
|
|
853
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
854
|
-
: stream.write(monadValue)
|
|
855
|
-
} else if (typeof item.reduce == 'function') {
|
|
856
|
-
const folded = item.reduce(resultStreamWriteReducer, null)
|
|
857
|
-
isPromise(folded) && promises.push(folded)
|
|
858
|
-
} else if (item.constructor == Object) {
|
|
859
|
-
for (const key in item) {
|
|
860
|
-
stream.write(item[key])
|
|
861
|
-
}
|
|
862
|
-
} else {
|
|
863
|
-
stream.write(item)
|
|
864
|
-
}
|
|
865
|
-
return promises.length == 0
|
|
866
|
-
? stream
|
|
867
|
-
: promiseAll(promises).then(always(stream))
|
|
868
|
-
}
|
|
869
|
-
|
|
870
|
-
const streamFlatMap = async function (stream, flatMapper) {
|
|
871
|
-
const promises = new Set()
|
|
872
|
-
for await (const item of stream) {
|
|
873
|
-
const monad = flatMapper(item)
|
|
874
|
-
if (isPromise(monad)) {
|
|
875
|
-
const selfDeletingPromise = monad.then(
|
|
876
|
-
curry2(streamFlatExtend, stream, __)).then(
|
|
877
|
-
() => promises.delete(selfDeletingPromise))
|
|
878
|
-
promises.add(selfDeletingPromise)
|
|
879
|
-
} else {
|
|
880
|
-
const streamFlatteningOperation = streamFlatExtend(stream, monad)
|
|
881
|
-
if (isPromise(streamFlatteningOperation)) {
|
|
882
|
-
const selfDeletingPromise = streamFlatteningOperation.then(
|
|
883
|
-
() => promises.delete(selfDeletingPromise))
|
|
884
|
-
promises.add(selfDeletingPromise)
|
|
885
|
-
}
|
|
886
|
-
}
|
|
887
|
-
}
|
|
888
|
-
await promiseAll(promises)
|
|
889
|
-
return stream
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
const globalThisHasBuffer = typeof Buffer == 'function'
|
|
893
|
-
|
|
894
|
-
const noop = function () {}
|
|
895
|
-
|
|
896
|
-
const bufferAlloc = globalThisHasBuffer ? Buffer.alloc : noop
|
|
897
|
-
|
|
898
|
-
const _binaryExtend = function (typedArray, array) {
|
|
899
|
-
const offset = typedArray.length
|
|
900
|
-
const result = globalThisHasBuffer && typedArray.constructor == Buffer
|
|
901
|
-
? bufferAlloc(offset + array.length)
|
|
902
|
-
: new typedArray.constructor(offset + array.length)
|
|
903
|
-
result.set(typedArray)
|
|
904
|
-
result.set(array, offset)
|
|
905
|
-
return result
|
|
906
|
-
}
|
|
907
|
-
|
|
908
|
-
const binaryExtend = function (typedArray, array) {
|
|
909
|
-
if (isArray(array) || isBinary(array)) {
|
|
910
|
-
return _binaryExtend(typedArray, array)
|
|
911
|
-
}
|
|
912
|
-
return _binaryExtend(typedArray, [array])
|
|
913
|
-
}
|
|
914
|
-
|
|
915
|
-
const arrayJoinToBinary = function (array, init) {
|
|
916
|
-
const length = array.length
|
|
917
|
-
let index = -1,
|
|
918
|
-
result = init
|
|
919
|
-
while (++index < length) {
|
|
920
|
-
result = binaryExtend(result, array[index])
|
|
921
|
-
}
|
|
922
|
-
return result
|
|
923
|
-
}
|
|
924
|
-
|
|
925
|
-
const arrayFlattenToBinary = function (array, result) {
|
|
926
|
-
const flattened = arrayFlatten(array)
|
|
927
|
-
return isPromise(flattened)
|
|
928
|
-
? flattened.then(curry2(arrayJoinToBinary, __, result))
|
|
929
|
-
: arrayJoinToBinary(flattened, result)
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
const binaryFlatMap = function (binary, flatMapper) {
|
|
933
|
-
const monadArray = arrayMap(binary, flatMapper),
|
|
934
|
-
result = globalThisHasBuffer && binary.constructor == Buffer
|
|
935
|
-
? bufferAlloc(0)
|
|
936
|
-
: new binary.constructor(0)
|
|
937
|
-
return isPromise(monadArray)
|
|
938
|
-
? monadArray.then(curry2(arrayFlattenToBinary, __, result))
|
|
939
|
-
: arrayFlattenToBinary(monadArray, result)
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
const reducerFlatMap = (
|
|
943
|
-
reducer, flatMapper,
|
|
944
|
-
) => function flatMappingReducer(result, value) {
|
|
945
|
-
const monad = flatMapper(value)
|
|
946
|
-
return isPromise(monad)
|
|
947
|
-
? monad.then(curryArgs3(genericReduce, __, reducer, result))
|
|
948
|
-
: genericReduce([monad], reducer, result)
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
const generatorFunctionFlatMap = (
|
|
952
|
-
generatorFunction, flatMapper,
|
|
953
|
-
) => function* flatMappingGeneratorFunction(...args) {
|
|
954
|
-
yield* FlatMappingIterator(generatorFunction(...args), flatMapper)
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
const asyncGeneratorFunctionFlatMap = (
|
|
958
|
-
asyncGeneratorFunction, flatMapper,
|
|
959
|
-
) => async function* flatMappingAsyncGeneratorFunction(...args) {
|
|
960
|
-
yield* FlatMappingAsyncIterator(asyncGeneratorFunction(...args), flatMapper)
|
|
961
|
-
}
|
|
962
|
-
|
|
963
|
-
const flatMap = flatMapper => function flatMapping(value) {
|
|
783
|
+
const _flatMap = function (value, flatMapper) {
|
|
964
784
|
if (isArray(value)) {
|
|
965
785
|
return arrayFlatMap(value, flatMapper)
|
|
966
786
|
}
|
|
967
|
-
if (typeof value == 'function') {
|
|
968
|
-
if (isGeneratorFunction(value)) {
|
|
969
|
-
return generatorFunctionFlatMap(value, flatMapper)
|
|
970
|
-
}
|
|
971
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
972
|
-
return asyncGeneratorFunctionFlatMap(value, flatMapper)
|
|
973
|
-
}
|
|
974
|
-
return reducerFlatMap(value, flatMapper)
|
|
975
|
-
}
|
|
976
|
-
if (isBinary(value)) {
|
|
977
|
-
return binaryFlatMap(value, flatMapper)
|
|
978
|
-
}
|
|
979
787
|
if (value == null) {
|
|
980
788
|
return flatMapper(value)
|
|
981
789
|
}
|
|
@@ -994,12 +802,6 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
994
802
|
if (typeof value.flatMap == 'function') {
|
|
995
803
|
return value.flatMap(flatMapper)
|
|
996
804
|
}
|
|
997
|
-
if (
|
|
998
|
-
typeof value[symbolAsyncIterator] == 'function'
|
|
999
|
-
&& typeof value.write == 'function'
|
|
1000
|
-
) {
|
|
1001
|
-
return streamFlatMap(value, flatMapper)
|
|
1002
|
-
}
|
|
1003
805
|
const valueConstructor = value.constructor
|
|
1004
806
|
if (valueConstructor == Object) {
|
|
1005
807
|
return objectFlatMap(value, flatMapper)
|
|
@@ -1013,6 +815,17 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
1013
815
|
return flatMapper(value)
|
|
1014
816
|
}
|
|
1015
817
|
|
|
818
|
+
const flatMap = (...args) => {
|
|
819
|
+
const flatMapper = args.pop()
|
|
820
|
+
if (args.length == 0) {
|
|
821
|
+
return curry2(_flatMap, __, flatMapper)
|
|
822
|
+
}
|
|
823
|
+
const collection = args[0]
|
|
824
|
+
return isPromise(collection)
|
|
825
|
+
? collection.then(curry2(_flatMap, __, flatMapper))
|
|
826
|
+
: _flatMap(args[0], flatMapper)
|
|
827
|
+
}
|
|
828
|
+
|
|
1016
829
|
const flatten = function (value) {
|
|
1017
830
|
if (isArray(value)) {
|
|
1018
831
|
return arrayFlatten(value)
|
|
@@ -1026,7 +839,7 @@ const flatten = function (value) {
|
|
|
1026
839
|
if (value.constructor == Object) {
|
|
1027
840
|
return objectFlatten(value)
|
|
1028
841
|
}
|
|
1029
|
-
return flatMap(identity)
|
|
842
|
+
return flatMap(value, identity)
|
|
1030
843
|
}
|
|
1031
844
|
|
|
1032
845
|
return flatten
|
package/dist/x/flatten.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatten=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=Symbol.for("placeholder"),e=function(n,t){return n.push(t),n},o=n=>function(){return n},r=function(n,e,o){return e==t?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,e)},u=(n,t)=>t,c=n=>n,f=n=>null!=n&&"function"==typeof n.then,i=Promise.all.bind(Promise),s=(n,t)=>function(...e){return t(n(...e))},l=async function(n,t){const e=[];for await(const o of n){const n=t(o);f(n)&&e.push(n)}return 0==e.length?n:i(e).then(o(n))},a=Symbol.iterator,h=Symbol.asyncIterator,p=function(p){const d=p.length,y=[],g=[];let
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatten=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=Symbol.for("placeholder"),e=function(n,t){return n.push(t),n},o=n=>function(){return n},r=function(n,e,o){return e==t?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,e)},u=(n,t)=>t,c=n=>n,f=n=>null!=n&&"function"==typeof n.then,i=Promise.all.bind(Promise),s=(n,t)=>function(...e){return t(n(...e))},l=async function(n,t){const e=[];for await(const o of n){const n=t(o);f(n)&&e.push(n)}return 0==e.length?n:i(e).then(o(n))},a=Symbol.iterator,h=Symbol.asyncIterator,p=function(p){const d=p.length,y=[],g=[];let v=-1;for(;++v<d;){const o=p[v];if(n(o)){const n=o.length;let t=-1;for(;++t<n;)g.push(o[t])}else if(null==o)g.push(o);else if("function"==typeof o.then)y.push(o.then(r(e,g,t)));else if("function"==typeof o[a])for(const n of o)g.push(n);else if("function"==typeof o[h])y.push(l(o[h](),r(e,g,t)));else if("function"==typeof o.chain){const n=o.chain(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.flatMap){const n=o.flatMap(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.reduce){const n=o.reduce(s(u,r(e,g,t)),null);f(n)&&y.push(n)}else if(o.constructor==Object)for(const n in o)g.push(o[n]);else g.push(o)}return 0==y.length?g:i(y).then(o(g))},d=function(n,e,o,r){return e==t?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==t?((n,t,e)=>function(o){return n(t,o,e)})(n,e,r):((n,t,e)=>function(o){return n(t,e,o)})(n,e,o)},y=(n,t,e)=>n[t](e),g=function(e){e.size;const o=[],r=new Set,u=(n,t)=>r.add(t),s=d(y,r,"add",t);for(const t of e)if(n(t)){const n=t.length;let e=-1;for(;++e<n;)r.add(t[e])}else if(null==t)r.add(t);else if("function"==typeof t[a])for(const n of t)r.add(n);else if("function"==typeof t[h])o.push(l(t[h](),s));else if("function"==typeof t.chain){const n=t.chain(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.flatMap){const n=t.flatMap(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.reduce){const n=t.reduce(u,null);f(n)&&o.push(n)}else if(t.constructor==Object)for(const n in t)r.add(t[n]);else r.add(t);return 0==o.length?r:i(o).then((()=>r))},v=Object.assign,b=function(n){const e=[],o={},p=r(v,o,t),d=s(u,p);for(const t in n){const r=n[t];if(null!=r)if("function"==typeof r[a])for(const n of r)v(o,n);else if("function"==typeof r[h])e.push(l(r[h](),p));else if("function"==typeof r.chain){const n=r.chain(c);f(n)?e.push(n.then(p)):v(o,n)}else if("function"==typeof r.flatMap){const n=r.flatMap(c);f(n)?e.push(n.then(p)):p(n)}else if("function"==typeof r.reduce){const n=r.reduce(d,null);f(n)&&e.push(n)}else v(o,r)}return 0==e.length?o:i(e).then((()=>o))},w=(Object.values,Object.prototype.toString,async function(n,t,e){let o=n.next();if(o.done)return e;for(;!o.done;)e=t(e,o.value),f(e)&&(e=await e),o=n.next();return e}),x=function(n,e,o,r,u){return e==t?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==t?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,e,r,u):r==t?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,e,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,e,o,r)},j=async function(n,t,e,o){const r=n.length;for(;++o<r;)e=t(e,n[o],o,n),f(e)&&(e=await e);return e},m=Object.keys,M=async function(n,t,e,o,r){const u=o.length;for(;++r<u;){const u=o[r];e=t(e,n[u],u,n),f(e)&&(e=await e)}return e},S=async function(n,t,e,o){for(const[r,u]of o)e=t(e,u,r,n),f(e)&&(e=await e);return e},O=function(e,o,u){return n(e)?function(n,e,o){const r=n.length;let u=-1;for(void 0===o&&(o=n[++u]);++u<r;)if(o=e(o,n[u],u,n),f(o))return o.then(x(j,n,e,t,u));return o}(e,o,u):null==e?void 0===u?r(o,e,t):o(u,e):e.constructor==Map?function(n,e,o){const r=n.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[u,c]of r)if(o=e(o,c,u,n),f(o))return o.then(x(S,n,e,t,r));return o}(e,o,u):"function"==typeof e[a]?function(n,e,o){let r=n.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=n.next());!r.done;){if(o=e(o,r.value),f(o))return o.then(d(w,n,e,t));r=n.next()}return o}(e[a](),o,u):"function"==typeof e[h]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(e[h](),o,u):"function"==typeof e.reduce?e.reduce(o,u):"function"==typeof e.chain?e.chain(r(o,u,t)):"function"==typeof e.flatMap?e.flatMap(r(o,u,t)):e.constructor==Object?function(n,e,o){const r=m(n),u=r.length;let c=-1;for(void 0===o&&(o=n[r[++c]]);++c<u;){const u=r[c];if(o=e(o,n[u],u,n),f(o))return o.then((i=M,l=e,a=t,h=r,p=c,(s=n)==t?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,a,h,p):l==t?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,a,h,p):a==t?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,h,p):h==t?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,a,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,a,h)))}var i,s,l,a,h,p;return o}(e,o,u):void 0===u?r(o,e,t):o(u,e)},A=Promise.race.bind(Promise),I=n=>new Promise((t=>{setTimeout(t,n)})),P=function(n,t){const e=n.length,o=Array(e);let r=-1,u=!1;for(;++r<e;){const e=t(n[r],r,n);f(e)&&(u=!0),o[r]=e}return u?i(o):o},D=n=>new Promise((n=>function(t){const e={};let o=0;for(const r in n){const u=n[r];f(u)?(o+=1,u.then((n=>function(r){e[n]=r,o-=1,0==o&&t(e)})(r))):e[r]=u}0==o&&t(e)})(n)),z=function(n,t){const e=function(n,t){const e={};let o=!1;for(const r in n){const u=t(n[r],r,n);f(u)&&(o=!0),e[r]=u}return o?D(e):e}(n,t);return f(e)?e.then(b):b(e)},T=function(n,e){const r=function(n,e){const r=new Set,u=[];for(const o of n){const c=e(o,o,n);f(c)?u.push(c.then(d(y,r,"add",t))):r.add(c)}return 0==u.length?r:i(u).then(o(r))}(n,e);return f(r)?r.then(g):g(r)},k=(F=p,q=r(((n,t)=>n.join(t)),t,""),function(...n){const t=F(...n);return f(t)?t.then(q):q(t)});var F,q;const B=function(o,r){if(n(o))return function(n,t){const e=P(n,t);return f(e)?e.then(p):p(e)}(o,r);if(null==o)return r(o);if("function"==typeof o.then)return o.then(r);if("function"==typeof o.next)return a in o?function(n,t){let o=[],r=0;return{[a](){return this},next(){if(r<o.length){const n=o[r];return r+=1,{value:n,done:!1}}const u=n.next();if(u.done)return u;const c=O(t(u.value),e,[]);return c.length>1&&(o=c,r=1),{value:c[0],done:!1}}}}(o,r):function(n,o){const r=[],u=new Set;return{isAsyncIteratorDone:!1,[h](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||r.length>0||u.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:i}=await n.next();if(i)this.isAsyncIteratorDone=i;else{const n=o(c);if(f(n)){const o=n.then(d(O,t,e,r)).then((()=>u.delete(o)));u.add(o)}else{const t=O(n,e,r);if(f(t)){const n=t.then((()=>u.delete(n)));u.add(n)}}}}if(r.length>0)return{value:r.shift(),done:!1};u.size>0&&await A([I(1e3),...u])}return{value:void 0,done:!0}}}}(o,r);if("function"==typeof o.chain)return o.chain(r);if("function"==typeof o.flatMap)return o.flatMap(r);const u=o.constructor;return u==Object?z(o,r):u==Set?T(o,r):"string"==typeof o||u==String?function(n,t){const e=P(n,t);return f(e)?e.then(k):k(e)}(o,r):r(o)};return function(e){return n(e)?p(e):null==e?e:e.constructor==Set?g(e):e.constructor==Object?b(e):((...n)=>{const e=n.pop();if(0==n.length)return r(B,t,e);const o=n[0];return f(o)?o.then(r(B,t,e)):B(n[0],e)})(e,c)}}());
|
package/dist/x/flatten.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico
|
|
2
|
+
* rubico v2.0.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2023 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -464,13 +464,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
|
|
|
464
464
|
|
|
465
465
|
const objectKeys = Object.keys
|
|
466
466
|
|
|
467
|
-
const objectGetFirstKey = function (object) {
|
|
468
|
-
for (const key in object) {
|
|
469
|
-
return key
|
|
470
|
-
}
|
|
471
|
-
return undefined
|
|
472
|
-
}
|
|
473
|
-
|
|
474
467
|
const objectReduceAsync = async function (object, reducer, result, keys, index) {
|
|
475
468
|
const keysLength = keys.length
|
|
476
469
|
while (++index < keysLength) {
|
|
@@ -531,18 +524,6 @@ const mapReduce = function (map, reducer, result) {
|
|
|
531
524
|
return result
|
|
532
525
|
}
|
|
533
526
|
|
|
534
|
-
const generatorFunctionReduce = (
|
|
535
|
-
generatorFunction, reducer, result,
|
|
536
|
-
) => funcConcatSync(
|
|
537
|
-
generatorFunction,
|
|
538
|
-
curry3(iteratorReduce, __, reducer, result))
|
|
539
|
-
|
|
540
|
-
const asyncGeneratorFunctionReduce = (
|
|
541
|
-
asyncGeneratorFunction, reducer, result,
|
|
542
|
-
) => funcConcatSync(
|
|
543
|
-
asyncGeneratorFunction,
|
|
544
|
-
curry3(asyncIteratorReduce, __, reducer, result))
|
|
545
|
-
|
|
546
527
|
const reducerConcat = (
|
|
547
528
|
reducerA, reducerB,
|
|
548
529
|
) => function pipedReducer(result, item) {
|
|
@@ -552,26 +533,10 @@ const reducerConcat = (
|
|
|
552
533
|
: reducerB(intermediate, item)
|
|
553
534
|
}
|
|
554
535
|
|
|
555
|
-
const genericReduce = function (
|
|
556
|
-
const collection = args[0]
|
|
536
|
+
const genericReduce = function (collection, reducer, result) {
|
|
557
537
|
if (isArray(collection)) {
|
|
558
538
|
return arrayReduce(collection, reducer, result)
|
|
559
539
|
}
|
|
560
|
-
if (typeof collection == 'function') {
|
|
561
|
-
if (isGeneratorFunction(collection)) {
|
|
562
|
-
return generatorFunctionReduce(collection, reducer, result)
|
|
563
|
-
}
|
|
564
|
-
if (isAsyncGeneratorFunction(collection)) {
|
|
565
|
-
return asyncGeneratorFunctionReduce(collection, reducer, result)
|
|
566
|
-
}
|
|
567
|
-
return curryArgs3(
|
|
568
|
-
genericReduce,
|
|
569
|
-
__,
|
|
570
|
-
args.length == 1
|
|
571
|
-
? reducerConcat(reducer, collection)
|
|
572
|
-
: args.reduce(reducerConcat, reducer),
|
|
573
|
-
result)
|
|
574
|
-
}
|
|
575
540
|
if (collection == null) {
|
|
576
541
|
return result === undefined
|
|
577
542
|
? curry2(reducer, collection, __)
|
|
@@ -625,7 +590,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
625
590
|
return iteration
|
|
626
591
|
}
|
|
627
592
|
const monadAsArray = genericReduce(
|
|
628
|
-
|
|
593
|
+
flatMapper(iteration.value),
|
|
629
594
|
arrayPush,
|
|
630
595
|
[]) // this will always have at least one item
|
|
631
596
|
if (monadAsArray.length > 1) {
|
|
@@ -671,12 +636,12 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
671
636
|
} else {
|
|
672
637
|
const monad = flatMapper(value)
|
|
673
638
|
if (isPromise(monad)) {
|
|
674
|
-
const bufferLoading =
|
|
675
|
-
|
|
639
|
+
const bufferLoading =
|
|
640
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
676
641
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
677
642
|
promises.add(promise)
|
|
678
643
|
} else {
|
|
679
|
-
const bufferLoading = genericReduce(
|
|
644
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
680
645
|
if (isPromise(bufferLoading)) {
|
|
681
646
|
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
682
647
|
promises.add(promise)
|
|
@@ -696,8 +661,6 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
696
661
|
}
|
|
697
662
|
}
|
|
698
663
|
|
|
699
|
-
const isBinary = ArrayBuffer.isView
|
|
700
|
-
|
|
701
664
|
const arrayMap = function (array, mapper) {
|
|
702
665
|
const arrayLength = array.length,
|
|
703
666
|
result = Array(arrayLength)
|
|
@@ -811,165 +774,10 @@ const stringFlatMap = function (string, flatMapper) {
|
|
|
811
774
|
: arrayFlattenToString(monadArray)
|
|
812
775
|
}
|
|
813
776
|
|
|
814
|
-
const
|
|
815
|
-
stream.write(chunk, encoding, callback)
|
|
816
|
-
return stream
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
const streamFlatExtend = async function (stream, item) {
|
|
820
|
-
const resultStreamWrite = curry2(streamWrite, stream, __),
|
|
821
|
-
// resultStreamWriteReducer = (_, subItem) => stream.write(subItem),
|
|
822
|
-
resultStreamWriteReducer = funcConcatSync(getArg1, resultStreamWrite),
|
|
823
|
-
promises = []
|
|
824
|
-
if (isArray(item)) {
|
|
825
|
-
const itemLength = item.length
|
|
826
|
-
let itemIndex = -1
|
|
827
|
-
while (++itemIndex < itemLength) {
|
|
828
|
-
stream.write(item[itemIndex])
|
|
829
|
-
}
|
|
830
|
-
} else if (item == null) {
|
|
831
|
-
stream.write(item)
|
|
832
|
-
} else if (typeof item[symbolIterator] == 'function') {
|
|
833
|
-
for (const subItem of item) {
|
|
834
|
-
stream.write(subItem)
|
|
835
|
-
}
|
|
836
|
-
} else if (typeof item[symbolAsyncIterator] == 'function') {
|
|
837
|
-
promises.push(
|
|
838
|
-
asyncIteratorForEach(item[symbolAsyncIterator](), resultStreamWrite))
|
|
839
|
-
} else if (typeof item.chain == 'function') {
|
|
840
|
-
const monadValue = item.chain(identity)
|
|
841
|
-
isPromise(monadValue)
|
|
842
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
843
|
-
: stream.write(monadValue)
|
|
844
|
-
} else if (typeof item.flatMap == 'function') {
|
|
845
|
-
const monadValue = item.flatMap(identity)
|
|
846
|
-
isPromise(monadValue)
|
|
847
|
-
? promises.push(monadValue.then(resultStreamWrite))
|
|
848
|
-
: stream.write(monadValue)
|
|
849
|
-
} else if (typeof item.reduce == 'function') {
|
|
850
|
-
const folded = item.reduce(resultStreamWriteReducer, null)
|
|
851
|
-
isPromise(folded) && promises.push(folded)
|
|
852
|
-
} else if (item.constructor == Object) {
|
|
853
|
-
for (const key in item) {
|
|
854
|
-
stream.write(item[key])
|
|
855
|
-
}
|
|
856
|
-
} else {
|
|
857
|
-
stream.write(item)
|
|
858
|
-
}
|
|
859
|
-
return promises.length == 0
|
|
860
|
-
? stream
|
|
861
|
-
: promiseAll(promises).then(always(stream))
|
|
862
|
-
}
|
|
863
|
-
|
|
864
|
-
const streamFlatMap = async function (stream, flatMapper) {
|
|
865
|
-
const promises = new Set()
|
|
866
|
-
for await (const item of stream) {
|
|
867
|
-
const monad = flatMapper(item)
|
|
868
|
-
if (isPromise(monad)) {
|
|
869
|
-
const selfDeletingPromise = monad.then(
|
|
870
|
-
curry2(streamFlatExtend, stream, __)).then(
|
|
871
|
-
() => promises.delete(selfDeletingPromise))
|
|
872
|
-
promises.add(selfDeletingPromise)
|
|
873
|
-
} else {
|
|
874
|
-
const streamFlatteningOperation = streamFlatExtend(stream, monad)
|
|
875
|
-
if (isPromise(streamFlatteningOperation)) {
|
|
876
|
-
const selfDeletingPromise = streamFlatteningOperation.then(
|
|
877
|
-
() => promises.delete(selfDeletingPromise))
|
|
878
|
-
promises.add(selfDeletingPromise)
|
|
879
|
-
}
|
|
880
|
-
}
|
|
881
|
-
}
|
|
882
|
-
await promiseAll(promises)
|
|
883
|
-
return stream
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
const globalThisHasBuffer = typeof Buffer == 'function'
|
|
887
|
-
|
|
888
|
-
const noop = function () {}
|
|
889
|
-
|
|
890
|
-
const bufferAlloc = globalThisHasBuffer ? Buffer.alloc : noop
|
|
891
|
-
|
|
892
|
-
const _binaryExtend = function (typedArray, array) {
|
|
893
|
-
const offset = typedArray.length
|
|
894
|
-
const result = globalThisHasBuffer && typedArray.constructor == Buffer
|
|
895
|
-
? bufferAlloc(offset + array.length)
|
|
896
|
-
: new typedArray.constructor(offset + array.length)
|
|
897
|
-
result.set(typedArray)
|
|
898
|
-
result.set(array, offset)
|
|
899
|
-
return result
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
const binaryExtend = function (typedArray, array) {
|
|
903
|
-
if (isArray(array) || isBinary(array)) {
|
|
904
|
-
return _binaryExtend(typedArray, array)
|
|
905
|
-
}
|
|
906
|
-
return _binaryExtend(typedArray, [array])
|
|
907
|
-
}
|
|
908
|
-
|
|
909
|
-
const arrayJoinToBinary = function (array, init) {
|
|
910
|
-
const length = array.length
|
|
911
|
-
let index = -1,
|
|
912
|
-
result = init
|
|
913
|
-
while (++index < length) {
|
|
914
|
-
result = binaryExtend(result, array[index])
|
|
915
|
-
}
|
|
916
|
-
return result
|
|
917
|
-
}
|
|
918
|
-
|
|
919
|
-
const arrayFlattenToBinary = function (array, result) {
|
|
920
|
-
const flattened = arrayFlatten(array)
|
|
921
|
-
return isPromise(flattened)
|
|
922
|
-
? flattened.then(curry2(arrayJoinToBinary, __, result))
|
|
923
|
-
: arrayJoinToBinary(flattened, result)
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
const binaryFlatMap = function (binary, flatMapper) {
|
|
927
|
-
const monadArray = arrayMap(binary, flatMapper),
|
|
928
|
-
result = globalThisHasBuffer && binary.constructor == Buffer
|
|
929
|
-
? bufferAlloc(0)
|
|
930
|
-
: new binary.constructor(0)
|
|
931
|
-
return isPromise(monadArray)
|
|
932
|
-
? monadArray.then(curry2(arrayFlattenToBinary, __, result))
|
|
933
|
-
: arrayFlattenToBinary(monadArray, result)
|
|
934
|
-
}
|
|
935
|
-
|
|
936
|
-
const reducerFlatMap = (
|
|
937
|
-
reducer, flatMapper,
|
|
938
|
-
) => function flatMappingReducer(result, value) {
|
|
939
|
-
const monad = flatMapper(value)
|
|
940
|
-
return isPromise(monad)
|
|
941
|
-
? monad.then(curryArgs3(genericReduce, __, reducer, result))
|
|
942
|
-
: genericReduce([monad], reducer, result)
|
|
943
|
-
}
|
|
944
|
-
|
|
945
|
-
const generatorFunctionFlatMap = (
|
|
946
|
-
generatorFunction, flatMapper,
|
|
947
|
-
) => function* flatMappingGeneratorFunction(...args) {
|
|
948
|
-
yield* FlatMappingIterator(generatorFunction(...args), flatMapper)
|
|
949
|
-
}
|
|
950
|
-
|
|
951
|
-
const asyncGeneratorFunctionFlatMap = (
|
|
952
|
-
asyncGeneratorFunction, flatMapper,
|
|
953
|
-
) => async function* flatMappingAsyncGeneratorFunction(...args) {
|
|
954
|
-
yield* FlatMappingAsyncIterator(asyncGeneratorFunction(...args), flatMapper)
|
|
955
|
-
}
|
|
956
|
-
|
|
957
|
-
const flatMap = flatMapper => function flatMapping(value) {
|
|
777
|
+
const _flatMap = function (value, flatMapper) {
|
|
958
778
|
if (isArray(value)) {
|
|
959
779
|
return arrayFlatMap(value, flatMapper)
|
|
960
780
|
}
|
|
961
|
-
if (typeof value == 'function') {
|
|
962
|
-
if (isGeneratorFunction(value)) {
|
|
963
|
-
return generatorFunctionFlatMap(value, flatMapper)
|
|
964
|
-
}
|
|
965
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
966
|
-
return asyncGeneratorFunctionFlatMap(value, flatMapper)
|
|
967
|
-
}
|
|
968
|
-
return reducerFlatMap(value, flatMapper)
|
|
969
|
-
}
|
|
970
|
-
if (isBinary(value)) {
|
|
971
|
-
return binaryFlatMap(value, flatMapper)
|
|
972
|
-
}
|
|
973
781
|
if (value == null) {
|
|
974
782
|
return flatMapper(value)
|
|
975
783
|
}
|
|
@@ -988,12 +796,6 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
988
796
|
if (typeof value.flatMap == 'function') {
|
|
989
797
|
return value.flatMap(flatMapper)
|
|
990
798
|
}
|
|
991
|
-
if (
|
|
992
|
-
typeof value[symbolAsyncIterator] == 'function'
|
|
993
|
-
&& typeof value.write == 'function'
|
|
994
|
-
) {
|
|
995
|
-
return streamFlatMap(value, flatMapper)
|
|
996
|
-
}
|
|
997
799
|
const valueConstructor = value.constructor
|
|
998
800
|
if (valueConstructor == Object) {
|
|
999
801
|
return objectFlatMap(value, flatMapper)
|
|
@@ -1007,6 +809,17 @@ const flatMap = flatMapper => function flatMapping(value) {
|
|
|
1007
809
|
return flatMapper(value)
|
|
1008
810
|
}
|
|
1009
811
|
|
|
812
|
+
const flatMap = (...args) => {
|
|
813
|
+
const flatMapper = args.pop()
|
|
814
|
+
if (args.length == 0) {
|
|
815
|
+
return curry2(_flatMap, __, flatMapper)
|
|
816
|
+
}
|
|
817
|
+
const collection = args[0]
|
|
818
|
+
return isPromise(collection)
|
|
819
|
+
? collection.then(curry2(_flatMap, __, flatMapper))
|
|
820
|
+
: _flatMap(args[0], flatMapper)
|
|
821
|
+
}
|
|
822
|
+
|
|
1010
823
|
const flatten = function (value) {
|
|
1011
824
|
if (isArray(value)) {
|
|
1012
825
|
return arrayFlatten(value)
|
|
@@ -1020,7 +833,7 @@ const flatten = function (value) {
|
|
|
1020
833
|
if (value.constructor == Object) {
|
|
1021
834
|
return objectFlatten(value)
|
|
1022
835
|
}
|
|
1023
|
-
return flatMap(identity)
|
|
836
|
+
return flatMap(value, identity)
|
|
1024
837
|
}
|
|
1025
838
|
|
|
1026
839
|
export default flatten
|