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/map.es.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
8
10
|
const symbolIterator = Symbol.iterator
|
|
9
11
|
|
|
10
12
|
const MappingIterator = (iterator, mapper) => ({
|
|
@@ -23,8 +25,6 @@ const MappingIterator = (iterator, mapper) => ({
|
|
|
23
25
|
|
|
24
26
|
const NextIteration = value => ({ value, done: false })
|
|
25
27
|
|
|
26
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
27
|
-
|
|
28
28
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
29
29
|
|
|
30
30
|
const MappingAsyncIterator = (asyncIterator, mapper) => ({
|
|
@@ -76,20 +76,6 @@ const isObject = value => {
|
|
|
76
76
|
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
const objectProto = Object.prototype
|
|
80
|
-
|
|
81
|
-
const nativeObjectToString = objectProto.toString
|
|
82
|
-
|
|
83
|
-
const objectToString = value => nativeObjectToString.call(value)
|
|
84
|
-
|
|
85
|
-
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
86
|
-
|
|
87
|
-
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
88
|
-
|
|
89
|
-
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
90
|
-
|
|
91
|
-
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
92
|
-
|
|
93
79
|
const promiseAll = Promise.all.bind(Promise)
|
|
94
80
|
|
|
95
81
|
const arrayMap = function (array, mapper) {
|
|
@@ -108,31 +94,6 @@ const arrayMap = function (array, mapper) {
|
|
|
108
94
|
return isAsync ? promiseAll(result) : result
|
|
109
95
|
}
|
|
110
96
|
|
|
111
|
-
const generatorFunctionMap = (
|
|
112
|
-
generatorFunc, mapper,
|
|
113
|
-
) => function* mappingGeneratorFunc(...args) {
|
|
114
|
-
for (const item of generatorFunc(...args)) {
|
|
115
|
-
yield mapper(item)
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const asyncGeneratorFunctionMap = function (asyncGeneratorFunc, mapper) {
|
|
120
|
-
return async function* mappingAsyncGeneratorFunc(...args) {
|
|
121
|
-
for await (const item of asyncGeneratorFunc(...args)) {
|
|
122
|
-
yield mapper(item)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const reducerMap = (
|
|
128
|
-
reducer, mapper,
|
|
129
|
-
) => function mappingReducer(result, reducerItem) {
|
|
130
|
-
const mappingReducerItem = mapper(reducerItem)
|
|
131
|
-
return isPromise(mappingReducerItem)
|
|
132
|
-
? mappingReducerItem.then(curry2(reducer, result, __))
|
|
133
|
-
: reducer(result, mappingReducerItem)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
97
|
// argument resolver for curry3
|
|
137
98
|
const curry3ResolveArg0 = (
|
|
138
99
|
baseFunc, arg1, arg2,
|
|
@@ -381,38 +342,6 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
|
|
|
381
342
|
return result
|
|
382
343
|
}
|
|
383
344
|
|
|
384
|
-
const arrayMapWithIndex = function (array, mapper) {
|
|
385
|
-
const arrayLength = array.length,
|
|
386
|
-
result = Array(arrayLength)
|
|
387
|
-
let index = -1, isAsync = false
|
|
388
|
-
while (++index < arrayLength) {
|
|
389
|
-
const resultItem = mapper(array[index], index, array)
|
|
390
|
-
if (isPromise(resultItem)) {
|
|
391
|
-
isAsync = true
|
|
392
|
-
}
|
|
393
|
-
result[index] = resultItem
|
|
394
|
-
}
|
|
395
|
-
return isAsync ? promiseAll(result) : result
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
const hasOwnProperty = Object.prototype.hasOwnProperty
|
|
399
|
-
const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
|
|
400
|
-
|
|
401
|
-
const objectMapOwn = function (object, mapper) {
|
|
402
|
-
const result = {}
|
|
403
|
-
let isAsync = false
|
|
404
|
-
for (const key in object) {
|
|
405
|
-
if (hasOwn(object, key)) {
|
|
406
|
-
const resultItem = mapper(object[key])
|
|
407
|
-
if (isPromise(resultItem)) {
|
|
408
|
-
isAsync = true
|
|
409
|
-
}
|
|
410
|
-
result[key] = resultItem
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
return isAsync ? promiseObjectAll(result) : result
|
|
414
|
-
}
|
|
415
|
-
|
|
416
345
|
const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
|
|
417
346
|
const argsLength = args.length,
|
|
418
347
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -520,15 +449,6 @@ const _map = function (value, mapper) {
|
|
|
520
449
|
if (isArray(value)) {
|
|
521
450
|
return arrayMap(value, mapper)
|
|
522
451
|
}
|
|
523
|
-
if (typeof value == 'function') {
|
|
524
|
-
if (isGeneratorFunction(value)) {
|
|
525
|
-
return generatorFunctionMap(value, mapper)
|
|
526
|
-
}
|
|
527
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
528
|
-
return asyncGeneratorFunctionMap(value, mapper)
|
|
529
|
-
}
|
|
530
|
-
return reducerMap(value, mapper)
|
|
531
|
-
}
|
|
532
452
|
if (value == null) {
|
|
533
453
|
return value
|
|
534
454
|
}
|
|
@@ -562,10 +482,15 @@ const _map = function (value, mapper) {
|
|
|
562
482
|
|
|
563
483
|
const map = (...args) => {
|
|
564
484
|
const mapper = args.pop()
|
|
565
|
-
if (args.length
|
|
566
|
-
return _map
|
|
485
|
+
if (args.length == 0) {
|
|
486
|
+
return curry2(_map, __, mapper)
|
|
567
487
|
}
|
|
568
|
-
|
|
488
|
+
|
|
489
|
+
const collection = args[0]
|
|
490
|
+
if (isPromise(collection)) {
|
|
491
|
+
return collection.then(curry2(_map, __, mapper))
|
|
492
|
+
}
|
|
493
|
+
return _map(collection, mapper)
|
|
569
494
|
}
|
|
570
495
|
|
|
571
496
|
map.entries = function mapEntries(mapper) {
|
|
@@ -597,18 +522,4 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
|
|
597
522
|
throw new TypeError(`${value} is not an Array`)
|
|
598
523
|
}
|
|
599
524
|
|
|
600
|
-
map.withIndex = mapper => function mappingWithIndex(value) {
|
|
601
|
-
if (isArray(value)) {
|
|
602
|
-
return arrayMapWithIndex(value, mapper)
|
|
603
|
-
}
|
|
604
|
-
throw new TypeError(`${value} is not an Array`)
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
map.own = mapper => function mappingOwnProperties(value) {
|
|
608
|
-
if (isObject(value) && !isArray(value)) {
|
|
609
|
-
return objectMapOwn(value, mapper)
|
|
610
|
-
}
|
|
611
|
-
throw new TypeError(`${value} is not an Object`)
|
|
612
|
-
}
|
|
613
|
-
|
|
614
525
|
export default map
|
package/dist/map.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 symbolIterator=Symbol.iterator,MappingIterator=(r,
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,symbolIterator=Symbol.iterator,MappingIterator=(r,t)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const n=r.next();return n.done?n:{value:t(n.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,t)=>({[symbolAsyncIterator](){return this},async next(){const n=await r.next();if(n.done)return n;const e=t(n.value);return isPromise(e)?e.then(NextIteration):{value:e,done:!1}}}),__=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)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,t){const n=r.length,e=Array(n);let o=-1,c=!1;for(;++o<n;){const n=t(r[o],o,r);isPromise(n)&&(c=!0),e[o]=n}return c?promiseAll(e):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),stringMap=function(r,t){const n=arrayMap(r,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},always=r=>function(){return r},setMap=function(r,t){const n=new Set,e=[];for(const o of r){const c=t(o,o,r);isPromise(c)?e.push(c.then(curry3(callPropUnary,n,"add",__))):n.add(c)}return 0==e.length?n:promiseAll(e).then(always(n))},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)},callPropBinary=(r,t,n,e)=>r[t](n,e),mapMap=function(r,t){const n=new Map,e=[];for(const[o,c]of r){const s=t(c,o,r);isPromise(s)?e.push(s.then(curry4(callPropBinary,n,"set",o,__))):n.set(o,s)}return 0==e.length?n:promiseAll(e).then(always(n))},promiseObjectAllExecutor=r=>function(t){const n={};let e=0;for(const o in r){const c=r[o];isPromise(c)?(e+=1,c.then((r=>function(o){n[r]=o,e-=1,0==e&&t(n)})(o))):n[o]=c}0==e&&t(n)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),objectMap=function(r,t){const n={};let e=!1;for(const o in r){const c=t(r[o],o,r);isPromise(c)&&(e=!0),n[o]=c}return e?promiseObjectAll(n):n},funcConcat=(r,t)=>function(...n){const e=r(...n);return isPromise(e)?e.then(t):t(e)},objectSet=function(r,t,n){return r[t]=n,r},arrayMapSeriesAsync=async function(r,t,n,e){const o=r.length;for(;++e<o;){const o=t(r[e]);n[e]=isPromise(o)?await o:o}return n},arrayMapSeries=function(r,t){const n=r.length,e=Array(n);let o=-1;for(;++o<n;){const n=t(r[o]);if(isPromise(n))return n.then(funcConcat(curry3(objectSet,e,o,__),curry4(arrayMapSeriesAsync,r,t,__,o)));e[o]=n}return e},tapSync=r=>function(...t){return r(...t),t[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,t,n,e,o,c){const s=r.length;for(;++o<s;){c.size>=n&&await promiseRace(c);const s=t(r[o]);if(isPromise(s)){const r=s.then(tapSync((()=>c.delete(r))));c.add(r),e[o]=r}else e[o]=s}return promiseAll(e)},arrayMapPool=function(r,t,n){const e=r.length,o=Array(e);let c=-1;for(;++c<e;){const e=t(r[c]);if(isPromise(e)){const s=new Set,a=e.then(tapSync((()=>s.delete(a))));return s.add(a),o[c]=a,arrayMapPoolAsync(r,t,n,o,c,s)}o[c]=e}return o},_curryArity=(r,t,n)=>function(...e){const o=n.length,c=e.length,s=[];let a=-1,i=-1,u=0;for(;++a<o;){const o=n[a];if(o==__&&(i+=1)<c){const r=e[i];r==__&&(u+=1),s.push(r)}else s.push(o);if(s.length==r)return 0==u?t(...s):curryArity(r,t,s)}for(;++i<c;){const n=e[i];if(n==__&&(u+=1),s.push(n),s.length==r)return 0==u?t(...s):curryArity(r,t,s)}return curryArity(r,t,s)},curryArity=function(r,t,n){const e=n.length;if(e<r)return _curryArity(r,t,n);let o=-1;for(;++o<e;){if(n[o]==__)return _curryArity(r,t,n)}return t(...n)},spread2=r=>function([t,n]){return r(t,n)},objectMapEntries=function(r,t){const n={},e=[];for(const o in r){const c=t([o,r[o]]);isPromise(c)?e.push(c.then(spread2(curryArity(3,objectSet,[n])))):n[c[0]]=c[1]}return 0==e.length?n:promiseAll(e).then(always(n))},mapSet=function(r,t,n){return r.set(t,n)},mapMapEntriesForEachCallback=(r,t,n)=>function(e,o){const c=r([o,e]);isPromise(c)?n.push(c.then(spread2(curryArity(3,mapSet,[t])))):t.set(c[0],c[1])},mapMapEntries=function(r,t){const n=new Map,e=[];return r.forEach(mapMapEntriesForEachCallback(t,n,e)),0==e.length?n:promiseAll(e).then(always(n))},_map=function(r,t){return isArray(r)?arrayMap(r,t):null==r?r:"function"==typeof r.then?r.then(t):"function"==typeof r.map?r.map(t):"string"==typeof r||r.constructor==String?stringMap(r,t):r.constructor==Set?setMap(r,t):r.constructor==Map?mapMap(r,t):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),t):r.constructor==Object?objectMap(r,t):t(r)},map=(...r)=>{const t=r.pop();if(0==r.length)return curry2(_map,__,t);const n=r[0];return isPromise(n)?n.then(curry2(_map,__,t)):_map(n,t)};map.entries=function(r){return function(t){if(null==t)throw new TypeError("value is not an Object or Map");if(t.constructor==Object)return objectMapEntries(t,r);if(t.constructor==Map)return mapMapEntries(t,r);throw new TypeError("value is not an Object or Map")}},map.series=r=>function(t){if(isArray(t))return arrayMapSeries(t,r);throw new TypeError(`${t} is not an Array`)},map.pool=(r,t)=>function(n){if(isArray(n))return arrayMapPool(n,t,r);throw new TypeError(`${n} is not an Array`)};export default map;
|
package/dist/map.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
|
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
else (root.map = map) // Browser
|
|
12
12
|
}(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
|
|
13
13
|
|
|
14
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
15
|
+
|
|
14
16
|
const symbolIterator = Symbol.iterator
|
|
15
17
|
|
|
16
18
|
const MappingIterator = (iterator, mapper) => ({
|
|
@@ -29,8 +31,6 @@ const MappingIterator = (iterator, mapper) => ({
|
|
|
29
31
|
|
|
30
32
|
const NextIteration = value => ({ value, done: false })
|
|
31
33
|
|
|
32
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
33
|
-
|
|
34
34
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
35
35
|
|
|
36
36
|
const MappingAsyncIterator = (asyncIterator, mapper) => ({
|
|
@@ -82,20 +82,6 @@ const isObject = value => {
|
|
|
82
82
|
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
const objectProto = Object.prototype
|
|
86
|
-
|
|
87
|
-
const nativeObjectToString = objectProto.toString
|
|
88
|
-
|
|
89
|
-
const objectToString = value => nativeObjectToString.call(value)
|
|
90
|
-
|
|
91
|
-
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
92
|
-
|
|
93
|
-
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
94
|
-
|
|
95
|
-
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
96
|
-
|
|
97
|
-
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
98
|
-
|
|
99
85
|
const promiseAll = Promise.all.bind(Promise)
|
|
100
86
|
|
|
101
87
|
const arrayMap = function (array, mapper) {
|
|
@@ -114,31 +100,6 @@ const arrayMap = function (array, mapper) {
|
|
|
114
100
|
return isAsync ? promiseAll(result) : result
|
|
115
101
|
}
|
|
116
102
|
|
|
117
|
-
const generatorFunctionMap = (
|
|
118
|
-
generatorFunc, mapper,
|
|
119
|
-
) => function* mappingGeneratorFunc(...args) {
|
|
120
|
-
for (const item of generatorFunc(...args)) {
|
|
121
|
-
yield mapper(item)
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const asyncGeneratorFunctionMap = function (asyncGeneratorFunc, mapper) {
|
|
126
|
-
return async function* mappingAsyncGeneratorFunc(...args) {
|
|
127
|
-
for await (const item of asyncGeneratorFunc(...args)) {
|
|
128
|
-
yield mapper(item)
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
const reducerMap = (
|
|
134
|
-
reducer, mapper,
|
|
135
|
-
) => function mappingReducer(result, reducerItem) {
|
|
136
|
-
const mappingReducerItem = mapper(reducerItem)
|
|
137
|
-
return isPromise(mappingReducerItem)
|
|
138
|
-
? mappingReducerItem.then(curry2(reducer, result, __))
|
|
139
|
-
: reducer(result, mappingReducerItem)
|
|
140
|
-
}
|
|
141
|
-
|
|
142
103
|
// argument resolver for curry3
|
|
143
104
|
const curry3ResolveArg0 = (
|
|
144
105
|
baseFunc, arg1, arg2,
|
|
@@ -387,38 +348,6 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
|
|
|
387
348
|
return result
|
|
388
349
|
}
|
|
389
350
|
|
|
390
|
-
const arrayMapWithIndex = function (array, mapper) {
|
|
391
|
-
const arrayLength = array.length,
|
|
392
|
-
result = Array(arrayLength)
|
|
393
|
-
let index = -1, isAsync = false
|
|
394
|
-
while (++index < arrayLength) {
|
|
395
|
-
const resultItem = mapper(array[index], index, array)
|
|
396
|
-
if (isPromise(resultItem)) {
|
|
397
|
-
isAsync = true
|
|
398
|
-
}
|
|
399
|
-
result[index] = resultItem
|
|
400
|
-
}
|
|
401
|
-
return isAsync ? promiseAll(result) : result
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
const hasOwnProperty = Object.prototype.hasOwnProperty
|
|
405
|
-
const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
|
|
406
|
-
|
|
407
|
-
const objectMapOwn = function (object, mapper) {
|
|
408
|
-
const result = {}
|
|
409
|
-
let isAsync = false
|
|
410
|
-
for (const key in object) {
|
|
411
|
-
if (hasOwn(object, key)) {
|
|
412
|
-
const resultItem = mapper(object[key])
|
|
413
|
-
if (isPromise(resultItem)) {
|
|
414
|
-
isAsync = true
|
|
415
|
-
}
|
|
416
|
-
result[key] = resultItem
|
|
417
|
-
}
|
|
418
|
-
}
|
|
419
|
-
return isAsync ? promiseObjectAll(result) : result
|
|
420
|
-
}
|
|
421
|
-
|
|
422
351
|
const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
|
|
423
352
|
const argsLength = args.length,
|
|
424
353
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -526,15 +455,6 @@ const _map = function (value, mapper) {
|
|
|
526
455
|
if (isArray(value)) {
|
|
527
456
|
return arrayMap(value, mapper)
|
|
528
457
|
}
|
|
529
|
-
if (typeof value == 'function') {
|
|
530
|
-
if (isGeneratorFunction(value)) {
|
|
531
|
-
return generatorFunctionMap(value, mapper)
|
|
532
|
-
}
|
|
533
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
534
|
-
return asyncGeneratorFunctionMap(value, mapper)
|
|
535
|
-
}
|
|
536
|
-
return reducerMap(value, mapper)
|
|
537
|
-
}
|
|
538
458
|
if (value == null) {
|
|
539
459
|
return value
|
|
540
460
|
}
|
|
@@ -568,10 +488,15 @@ const _map = function (value, mapper) {
|
|
|
568
488
|
|
|
569
489
|
const map = (...args) => {
|
|
570
490
|
const mapper = args.pop()
|
|
571
|
-
if (args.length
|
|
572
|
-
return _map
|
|
491
|
+
if (args.length == 0) {
|
|
492
|
+
return curry2(_map, __, mapper)
|
|
573
493
|
}
|
|
574
|
-
|
|
494
|
+
|
|
495
|
+
const collection = args[0]
|
|
496
|
+
if (isPromise(collection)) {
|
|
497
|
+
return collection.then(curry2(_map, __, mapper))
|
|
498
|
+
}
|
|
499
|
+
return _map(collection, mapper)
|
|
575
500
|
}
|
|
576
501
|
|
|
577
502
|
map.entries = function mapEntries(mapper) {
|
|
@@ -603,19 +528,5 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
|
|
603
528
|
throw new TypeError(`${value} is not an Array`)
|
|
604
529
|
}
|
|
605
530
|
|
|
606
|
-
map.withIndex = mapper => function mappingWithIndex(value) {
|
|
607
|
-
if (isArray(value)) {
|
|
608
|
-
return arrayMapWithIndex(value, mapper)
|
|
609
|
-
}
|
|
610
|
-
throw new TypeError(`${value} is not an Array`)
|
|
611
|
-
}
|
|
612
|
-
|
|
613
|
-
map.own = mapper => function mappingOwnProperties(value) {
|
|
614
|
-
if (isObject(value) && !isArray(value)) {
|
|
615
|
-
return objectMapOwn(value, mapper)
|
|
616
|
-
}
|
|
617
|
-
throw new TypeError(`${value} is not an Object`)
|
|
618
|
-
}
|
|
619
|
-
|
|
620
531
|
return map
|
|
621
532
|
}())))
|
package/dist/map.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.map=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.iterator,
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.map=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.iterator,r=(n,r)=>({toString:()=>"[object MappingIterator]",[t](){return this},next(){const t=n.next();return t.done?t:{value:r(t.value),done:!1}}}),e=n=>({value:n,done:!1}),o=Symbol.asyncIterator,u=(t,r)=>({[o](){return this},async next(){const o=await t.next();if(o.done)return o;const u=r(o.value);return n(u)?u.then(e):{value:u,done:!1}}}),c=Symbol.for("placeholder"),i=function(n,t,r){return t==c?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)},f=Array.isArray,s=Promise.all.bind(Promise),l=function(t,r){const e=t.length,o=Array(e);let u=-1,c=!1;for(;++u<e;){const e=r(t[u],u,t);n(e)&&(c=!0),o[u]=e}return c?s(o):o},h=function(n,t,r,e){return t==c?((n,t,r)=>function(e){return n(e,t,r)})(n,r,e):r==c?((n,t,r)=>function(e){return n(t,e,r)})(n,t,e):((n,t,r)=>function(e){return n(t,r,e)})(n,t,r)},a=(n,t,r)=>n[t](r),p=n=>function(){return n},y=function(n,t,r,e,o){return t==c?((n,t,r,e)=>function(o){return n(o,t,r,e)})(n,r,e,o):r==c?((n,t,r,e)=>function(o){return n(t,o,r,e)})(n,t,e,o):e==c?((n,t,r,e)=>function(o){return n(t,r,o,e)})(n,t,r,o):((n,t,r,e)=>function(o){return n(t,r,e,o)})(n,t,r,e)},d=(n,t,r,e)=>n[t](r,e),g=t=>new Promise((t=>function(r){const e={};let o=0;for(const u in t){const c=t[u];n(c)?(o+=1,c.then((n=>function(t){e[n]=t,o-=1,0==o&&r(e)})(u))):e[u]=c}0==o&&r(e)})(t)),w=(t,r)=>function(...e){const o=t(...e);return n(o)?o.then(r):r(o)},b=function(n,t,r){return n[t]=r,n},m=async function(t,r,e,o){const u=t.length;for(;++o<u;){const u=r(t[o]);e[o]=n(u)?await u:u}return e},j=n=>function(...t){return n(...t),t[0]},S=Promise.race.bind(Promise),v=async function(t,r,e,o,u,c){const i=t.length;for(;++u<i;){c.size>=e&&await S(c);const i=r(t[u]);if(n(i)){const n=i.then(j((()=>c.delete(n))));c.add(n),o[u]=n}else o[u]=i}return s(o)},A=(n,t,r)=>function(...e){const o=r.length,u=e.length,i=[];let f=-1,s=-1,l=0;for(;++f<o;){const o=r[f];if(o==c&&(s+=1)<u){const n=e[s];n==c&&(l+=1),i.push(n)}else i.push(o);if(i.length==n)return 0==l?t(...i):M(n,t,i)}for(;++s<u;){const r=e[s];if(r==c&&(l+=1),i.push(r),i.length==n)return 0==l?t(...i):M(n,t,i)}return M(n,t,i)},M=function(n,t,r){const e=r.length;if(e<n)return A(n,t,r);let o=-1;for(;++o<e;){if(r[o]==c)return A(n,t,r)}return t(...r)},T=n=>function([t,r]){return n(t,r)},x=function(n,t,r){return n.set(t,r)},E=function(t,r){const e=new Map,o=[];return t.forEach(((t,r,e)=>function(o,u){const c=t([u,o]);n(c)?e.push(c.then(T(M(3,x,[r])))):r.set(c[0],c[1])})(r,e,o)),0==o.length?e:s(o).then(p(e))},P=function(e,i){return f(e)?l(e,i):null==e?e:"function"==typeof e.then?e.then(i):"function"==typeof e.map?e.map(i):"string"==typeof e||e.constructor==String?function(t,r){const e=l(t,r);return n(e)?e.then(h(a,c,"join","")):e.join("")}(e,i):e.constructor==Set?function(t,r){const e=new Set,o=[];for(const u of t){const i=r(u,u,t);n(i)?o.push(i.then(h(a,e,"add",c))):e.add(i)}return 0==o.length?e:s(o).then(p(e))}(e,i):e.constructor==Map?function(t,r){const e=new Map,o=[];for(const[u,i]of t){const f=r(i,u,t);n(f)?o.push(f.then(y(d,e,"set",u,c))):e.set(u,f)}return 0==o.length?e:s(o).then(p(e))}(e,i):"function"==typeof e[t]?r(e[t](),i):"function"==typeof e[o]?u(e[o](),i):e.constructor==Object?function(t,r){const e={};let o=!1;for(const u in t){const c=r(t[u],u,t);n(c)&&(o=!0),e[u]=c}return o?g(e):e}(e,i):i(e)},O=(...t)=>{const r=t.pop();if(0==t.length)return i(P,c,r);const e=t[0];return n(e)?e.then(i(P,c,r)):P(e,r)};return O.entries=function(t){return function(r){if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return function(t,r){const e={},o=[];for(const u in t){const c=r([u,t[u]]);n(c)?o.push(c.then(T(M(3,b,[e])))):e[c[0]]=c[1]}return 0==o.length?e:s(o).then(p(e))}(r,t);if(r.constructor==Map)return E(r,t);throw new TypeError("value is not an Object or Map")}},O.series=t=>function(r){if(f(r))return function(t,r){const e=t.length,o=Array(e);let u=-1;for(;++u<e;){const e=r(t[u]);if(n(e))return e.then(w(h(b,o,u,c),y(m,t,r,c,u)));o[u]=e}return o}(r,t);throw new TypeError(`${r} is not an Array`)},O.pool=(t,r)=>function(e){if(f(e))return function(t,r,e){const o=t.length,u=Array(o);let c=-1;for(;++c<o;){const o=r(t[c]);if(n(o)){const n=new Set,i=o.then(j((()=>n.delete(i))));return n.add(i),u[c]=i,v(t,r,e,u,c,n)}u[c]=o}return u}(e,r,t);throw new TypeError(`${e} is not an Array`)},O}());
|
package/dist/map.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 symbolIterator=Symbol.iterator,MappingIterator=(r,
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,symbolIterator=Symbol.iterator,MappingIterator=(r,t)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const n=r.next();return n.done?n:{value:t(n.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,t)=>({[symbolAsyncIterator](){return this},async next(){const n=await r.next();if(n.done)return n;const e=t(n.value);return isPromise(e)?e.then(NextIteration):{value:e,done:!1}}}),__=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)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,t){const n=r.length,e=Array(n);let o=-1,c=!1;for(;++o<n;){const n=t(r[o],o,r);isPromise(n)&&(c=!0),e[o]=n}return c?promiseAll(e):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),stringMap=function(r,t){const n=arrayMap(r,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},always=r=>function(){return r},setMap=function(r,t){const n=new Set,e=[];for(const o of r){const c=t(o,o,r);isPromise(c)?e.push(c.then(curry3(callPropUnary,n,"add",__))):n.add(c)}return 0==e.length?n:promiseAll(e).then(always(n))},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)},callPropBinary=(r,t,n,e)=>r[t](n,e),mapMap=function(r,t){const n=new Map,e=[];for(const[o,c]of r){const s=t(c,o,r);isPromise(s)?e.push(s.then(curry4(callPropBinary,n,"set",o,__))):n.set(o,s)}return 0==e.length?n:promiseAll(e).then(always(n))},promiseObjectAllExecutor=r=>function(t){const n={};let e=0;for(const o in r){const c=r[o];isPromise(c)?(e+=1,c.then((r=>function(o){n[r]=o,e-=1,0==e&&t(n)})(o))):n[o]=c}0==e&&t(n)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),objectMap=function(r,t){const n={};let e=!1;for(const o in r){const c=t(r[o],o,r);isPromise(c)&&(e=!0),n[o]=c}return e?promiseObjectAll(n):n},funcConcat=(r,t)=>function(...n){const e=r(...n);return isPromise(e)?e.then(t):t(e)},objectSet=function(r,t,n){return r[t]=n,r},arrayMapSeriesAsync=async function(r,t,n,e){const o=r.length;for(;++e<o;){const o=t(r[e]);n[e]=isPromise(o)?await o:o}return n},arrayMapSeries=function(r,t){const n=r.length,e=Array(n);let o=-1;for(;++o<n;){const n=t(r[o]);if(isPromise(n))return n.then(funcConcat(curry3(objectSet,e,o,__),curry4(arrayMapSeriesAsync,r,t,__,o)));e[o]=n}return e},tapSync=r=>function(...t){return r(...t),t[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,t,n,e,o,c){const s=r.length;for(;++o<s;){c.size>=n&&await promiseRace(c);const s=t(r[o]);if(isPromise(s)){const r=s.then(tapSync((()=>c.delete(r))));c.add(r),e[o]=r}else e[o]=s}return promiseAll(e)},arrayMapPool=function(r,t,n){const e=r.length,o=Array(e);let c=-1;for(;++c<e;){const e=t(r[c]);if(isPromise(e)){const s=new Set,a=e.then(tapSync((()=>s.delete(a))));return s.add(a),o[c]=a,arrayMapPoolAsync(r,t,n,o,c,s)}o[c]=e}return o},_curryArity=(r,t,n)=>function(...e){const o=n.length,c=e.length,s=[];let a=-1,i=-1,u=0;for(;++a<o;){const o=n[a];if(o==__&&(i+=1)<c){const r=e[i];r==__&&(u+=1),s.push(r)}else s.push(o);if(s.length==r)return 0==u?t(...s):curryArity(r,t,s)}for(;++i<c;){const n=e[i];if(n==__&&(u+=1),s.push(n),s.length==r)return 0==u?t(...s):curryArity(r,t,s)}return curryArity(r,t,s)},curryArity=function(r,t,n){const e=n.length;if(e<r)return _curryArity(r,t,n);let o=-1;for(;++o<e;){if(n[o]==__)return _curryArity(r,t,n)}return t(...n)},spread2=r=>function([t,n]){return r(t,n)},objectMapEntries=function(r,t){const n={},e=[];for(const o in r){const c=t([o,r[o]]);isPromise(c)?e.push(c.then(spread2(curryArity(3,objectSet,[n])))):n[c[0]]=c[1]}return 0==e.length?n:promiseAll(e).then(always(n))},mapSet=function(r,t,n){return r.set(t,n)},mapMapEntriesForEachCallback=(r,t,n)=>function(e,o){const c=r([o,e]);isPromise(c)?n.push(c.then(spread2(curryArity(3,mapSet,[t])))):t.set(c[0],c[1])},mapMapEntries=function(r,t){const n=new Map,e=[];return r.forEach(mapMapEntriesForEachCallback(t,n,e)),0==e.length?n:promiseAll(e).then(always(n))},_map=function(r,t){return isArray(r)?arrayMap(r,t):null==r?r:"function"==typeof r.then?r.then(t):"function"==typeof r.map?r.map(t):"string"==typeof r||r.constructor==String?stringMap(r,t):r.constructor==Set?setMap(r,t):r.constructor==Map?mapMap(r,t):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),t):r.constructor==Object?objectMap(r,t):t(r)},map=(...r)=>{const t=r.pop();if(0==r.length)return curry2(_map,__,t);const n=r[0];return isPromise(n)?n.then(curry2(_map,__,t)):_map(n,t)};map.entries=function(r){return function(t){if(null==t)throw new TypeError("value is not an Object or Map");if(t.constructor==Object)return objectMapEntries(t,r);if(t.constructor==Map)return mapMapEntries(t,r);throw new TypeError("value is not an Object or Map")}},map.series=r=>function(t){if(isArray(t))return arrayMapSeries(t,r);throw new TypeError(`${t} is not an Array`)},map.pool=(r,t)=>function(n){if(isArray(n))return arrayMapPool(n,t,r);throw new TypeError(`${n} is not an Array`)};export default map;
|
package/dist/map.mjs
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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
|
+
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
|
+
|
|
8
10
|
const symbolIterator = Symbol.iterator
|
|
9
11
|
|
|
10
12
|
const MappingIterator = (iterator, mapper) => ({
|
|
@@ -23,8 +25,6 @@ const MappingIterator = (iterator, mapper) => ({
|
|
|
23
25
|
|
|
24
26
|
const NextIteration = value => ({ value, done: false })
|
|
25
27
|
|
|
26
|
-
const isPromise = value => value != null && typeof value.then == 'function'
|
|
27
|
-
|
|
28
28
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
29
29
|
|
|
30
30
|
const MappingAsyncIterator = (asyncIterator, mapper) => ({
|
|
@@ -76,20 +76,6 @@ const isObject = value => {
|
|
|
76
76
|
return (typeofValue == 'object') || (typeofValue == 'function')
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
const objectProto = Object.prototype
|
|
80
|
-
|
|
81
|
-
const nativeObjectToString = objectProto.toString
|
|
82
|
-
|
|
83
|
-
const objectToString = value => nativeObjectToString.call(value)
|
|
84
|
-
|
|
85
|
-
const generatorFunctionTag = '[object GeneratorFunction]'
|
|
86
|
-
|
|
87
|
-
const isGeneratorFunction = value => objectToString(value) == generatorFunctionTag
|
|
88
|
-
|
|
89
|
-
const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
|
|
90
|
-
|
|
91
|
-
const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
|
|
92
|
-
|
|
93
79
|
const promiseAll = Promise.all.bind(Promise)
|
|
94
80
|
|
|
95
81
|
const arrayMap = function (array, mapper) {
|
|
@@ -108,31 +94,6 @@ const arrayMap = function (array, mapper) {
|
|
|
108
94
|
return isAsync ? promiseAll(result) : result
|
|
109
95
|
}
|
|
110
96
|
|
|
111
|
-
const generatorFunctionMap = (
|
|
112
|
-
generatorFunc, mapper,
|
|
113
|
-
) => function* mappingGeneratorFunc(...args) {
|
|
114
|
-
for (const item of generatorFunc(...args)) {
|
|
115
|
-
yield mapper(item)
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
const asyncGeneratorFunctionMap = function (asyncGeneratorFunc, mapper) {
|
|
120
|
-
return async function* mappingAsyncGeneratorFunc(...args) {
|
|
121
|
-
for await (const item of asyncGeneratorFunc(...args)) {
|
|
122
|
-
yield mapper(item)
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
const reducerMap = (
|
|
128
|
-
reducer, mapper,
|
|
129
|
-
) => function mappingReducer(result, reducerItem) {
|
|
130
|
-
const mappingReducerItem = mapper(reducerItem)
|
|
131
|
-
return isPromise(mappingReducerItem)
|
|
132
|
-
? mappingReducerItem.then(curry2(reducer, result, __))
|
|
133
|
-
: reducer(result, mappingReducerItem)
|
|
134
|
-
}
|
|
135
|
-
|
|
136
97
|
// argument resolver for curry3
|
|
137
98
|
const curry3ResolveArg0 = (
|
|
138
99
|
baseFunc, arg1, arg2,
|
|
@@ -381,38 +342,6 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
|
|
|
381
342
|
return result
|
|
382
343
|
}
|
|
383
344
|
|
|
384
|
-
const arrayMapWithIndex = function (array, mapper) {
|
|
385
|
-
const arrayLength = array.length,
|
|
386
|
-
result = Array(arrayLength)
|
|
387
|
-
let index = -1, isAsync = false
|
|
388
|
-
while (++index < arrayLength) {
|
|
389
|
-
const resultItem = mapper(array[index], index, array)
|
|
390
|
-
if (isPromise(resultItem)) {
|
|
391
|
-
isAsync = true
|
|
392
|
-
}
|
|
393
|
-
result[index] = resultItem
|
|
394
|
-
}
|
|
395
|
-
return isAsync ? promiseAll(result) : result
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
const hasOwnProperty = Object.prototype.hasOwnProperty
|
|
399
|
-
const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
|
|
400
|
-
|
|
401
|
-
const objectMapOwn = function (object, mapper) {
|
|
402
|
-
const result = {}
|
|
403
|
-
let isAsync = false
|
|
404
|
-
for (const key in object) {
|
|
405
|
-
if (hasOwn(object, key)) {
|
|
406
|
-
const resultItem = mapper(object[key])
|
|
407
|
-
if (isPromise(resultItem)) {
|
|
408
|
-
isAsync = true
|
|
409
|
-
}
|
|
410
|
-
result[key] = resultItem
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
return isAsync ? promiseObjectAll(result) : result
|
|
414
|
-
}
|
|
415
|
-
|
|
416
345
|
const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
|
|
417
346
|
const argsLength = args.length,
|
|
418
347
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -520,15 +449,6 @@ const _map = function (value, mapper) {
|
|
|
520
449
|
if (isArray(value)) {
|
|
521
450
|
return arrayMap(value, mapper)
|
|
522
451
|
}
|
|
523
|
-
if (typeof value == 'function') {
|
|
524
|
-
if (isGeneratorFunction(value)) {
|
|
525
|
-
return generatorFunctionMap(value, mapper)
|
|
526
|
-
}
|
|
527
|
-
if (isAsyncGeneratorFunction(value)) {
|
|
528
|
-
return asyncGeneratorFunctionMap(value, mapper)
|
|
529
|
-
}
|
|
530
|
-
return reducerMap(value, mapper)
|
|
531
|
-
}
|
|
532
452
|
if (value == null) {
|
|
533
453
|
return value
|
|
534
454
|
}
|
|
@@ -562,10 +482,15 @@ const _map = function (value, mapper) {
|
|
|
562
482
|
|
|
563
483
|
const map = (...args) => {
|
|
564
484
|
const mapper = args.pop()
|
|
565
|
-
if (args.length
|
|
566
|
-
return _map
|
|
485
|
+
if (args.length == 0) {
|
|
486
|
+
return curry2(_map, __, mapper)
|
|
567
487
|
}
|
|
568
|
-
|
|
488
|
+
|
|
489
|
+
const collection = args[0]
|
|
490
|
+
if (isPromise(collection)) {
|
|
491
|
+
return collection.then(curry2(_map, __, mapper))
|
|
492
|
+
}
|
|
493
|
+
return _map(collection, mapper)
|
|
569
494
|
}
|
|
570
495
|
|
|
571
496
|
map.entries = function mapEntries(mapper) {
|
|
@@ -597,18 +522,4 @@ map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
|
|
597
522
|
throw new TypeError(`${value} is not an Array`)
|
|
598
523
|
}
|
|
599
524
|
|
|
600
|
-
map.withIndex = mapper => function mappingWithIndex(value) {
|
|
601
|
-
if (isArray(value)) {
|
|
602
|
-
return arrayMapWithIndex(value, mapper)
|
|
603
|
-
}
|
|
604
|
-
throw new TypeError(`${value} is not an Array`)
|
|
605
|
-
}
|
|
606
|
-
|
|
607
|
-
map.own = mapper => function mappingOwnProperties(value) {
|
|
608
|
-
if (isObject(value) && !isArray(value)) {
|
|
609
|
-
return objectMapOwn(value, mapper)
|
|
610
|
-
}
|
|
611
|
-
throw new TypeError(`${value} is not an Object`)
|
|
612
|
-
}
|
|
613
|
-
|
|
614
525
|
export default map
|