rubico 2.7.3 → 2.7.5
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/LICENSE +1 -1
- package/README.md +27 -30
- package/Transducer.d.ts +10 -10
- package/Transducer.js +65 -69
- package/__.js +1 -1
- package/_internal/FlatMappingIterator.js +1 -1
- package/_internal/MappingIterator.d.ts +1 -1
- package/_internal/MappingIterator.js +1 -1
- package/_internal/arrayFilter.js +6 -6
- package/_internal/arrayFilterIndexes.js +7 -7
- package/_internal/arrayFilterWithIndex.js +6 -6
- package/_internal/arrayFind.js +7 -7
- package/_internal/arrayFlatten.js +25 -25
- package/_internal/arrayForEach.d.ts +1 -1
- package/_internal/arrayForEach.js +1 -1
- package/_internal/arrayForEachSeries.js +1 -1
- package/_internal/arrayMap.d.ts +2 -2
- package/_internal/arrayMap.js +5 -5
- package/_internal/arrayMapPool.d.ts +1 -1
- package/_internal/arrayMapPool.js +10 -10
- package/_internal/arrayMapRate.js +4 -4
- package/_internal/arrayMapSeries.d.ts +1 -1
- package/_internal/arrayMapSeries.js +8 -8
- package/_internal/arrayMapWithIndex.js +4 -4
- package/_internal/arrayReduce.js +1 -1
- package/_internal/asyncGeneratorFunctionForEach.js +3 -3
- package/_internal/asyncGeneratorFunctionMap.js +3 -3
- package/_internal/asyncIteratorFind.js +3 -3
- package/_internal/asyncIteratorForEach.d.ts +1 -1
- package/_internal/asyncIteratorForEach.js +3 -3
- package/_internal/asyncIteratorForEachSeries.js +3 -3
- package/_internal/asyncIteratorToArray.js +2 -2
- package/_internal/copyDeep.js +12 -12
- package/_internal/funcAll.js +3 -3
- package/_internal/funcAllSeries.js +6 -6
- package/_internal/funcObjectAll.js +4 -4
- package/_internal/functionArrayAll.js +3 -3
- package/_internal/functionArrayAllSeries.js +6 -6
- package/_internal/functionObjectAll.js +4 -4
- package/_internal/generatorFunctionForEach.js +3 -3
- package/_internal/generatorFunctionMap.js +3 -3
- package/_internal/generatorFunctionReduce.js +1 -1
- package/_internal/iteratorEvery.js +2 -2
- package/_internal/iteratorFind.js +7 -7
- package/_internal/iteratorForEach.d.ts +1 -1
- package/_internal/iteratorForEach.js +3 -3
- package/_internal/iteratorForEachSeries.js +1 -1
- package/_internal/iteratorReduce.d.ts +1 -1
- package/_internal/iteratorReduce.js +2 -2
- package/_internal/iteratorSome.js +2 -2
- package/_internal/mapFilter.js +4 -4
- package/_internal/mapMap.d.ts +1 -1
- package/_internal/mapMap.js +6 -6
- package/_internal/mapMapPool.js +10 -10
- package/_internal/mapMapSeries.js +10 -10
- package/_internal/objectFilter.js +6 -6
- package/_internal/objectFlatMap.d.ts +1 -1
- package/_internal/objectFlatMap.js +1 -1
- package/_internal/objectFlatten.js +14 -14
- package/_internal/objectMap.js +3 -3
- package/_internal/objectMapOwn.js +3 -3
- package/_internal/objectMapPool.js +10 -10
- package/_internal/objectMapSeries.js +9 -9
- package/_internal/objectReduce.d.ts +1 -1
- package/_internal/objectReduce.js +2 -2
- package/_internal/reducerAllSync.d.ts +2 -2
- package/_internal/reducerAllSync.js +2 -2
- package/_internal/reducerAnySync.d.ts +1 -1
- package/_internal/reducerAnySync.js +2 -2
- package/_internal/reducerConcat.d.ts +1 -1
- package/_internal/reducerConcat.js +4 -4
- package/_internal/reducerConcatSync.js +2 -2
- package/_internal/reducerEvery.d.ts +2 -2
- package/_internal/reducerEvery.js +4 -4
- package/_internal/reducerFilter.d.ts +2 -2
- package/_internal/reducerFilter.js +5 -5
- package/_internal/reducerFlatten.js +3 -3
- package/_internal/reducerForEach.d.ts +2 -2
- package/_internal/reducerForEach.js +5 -5
- package/_internal/reducerMap.d.ts +1 -1
- package/_internal/reducerMap.js +5 -5
- package/_internal/reducerSome.d.ts +2 -2
- package/_internal/reducerSome.js +4 -4
- package/_internal/reducerTryCatch.d.ts +2 -2
- package/_internal/reducerTryCatch.js +8 -8
- package/_internal/setFilter.d.ts +1 -1
- package/_internal/setFilter.js +5 -5
- package/_internal/setFlatten.js +24 -24
- package/_internal/setMap.d.ts +1 -1
- package/_internal/setMap.js +6 -6
- package/_internal/setMapPool.js +9 -9
- package/_internal/setMapSeries.js +10 -10
- package/_internal/streamFlatExtend.js +25 -25
- package/_internal/streamFlatMap.js +2 -2
- package/all.js +3 -3
- package/and.js +5 -2
- package/assign.js +2 -2
- package/compose.js +6 -2
- package/curry.js +5 -12
- package/dist/Transducer.es.js +24 -24
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +24 -24
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +24 -24
- package/dist/__.es.js +1 -1
- package/dist/__.es.min.js +1 -1
- package/dist/__.js +1 -1
- package/dist/__.min.js +1 -1
- package/dist/__.mjs +1 -1
- package/dist/all.es.js +14 -14
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +14 -14
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +14 -14
- package/dist/always.es.js +1 -1
- package/dist/always.es.min.js +1 -1
- package/dist/always.js +1 -1
- package/dist/always.min.js +1 -1
- package/dist/always.mjs +1 -1
- package/dist/and.es.js +1 -1
- package/dist/and.es.min.js +1 -1
- package/dist/and.js +1 -1
- package/dist/and.min.js +1 -1
- package/dist/and.mjs +1 -1
- package/dist/assign.es.js +5 -5
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +5 -5
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +5 -5
- package/dist/compose.es.js +1 -1
- package/dist/compose.es.min.js +1 -1
- package/dist/compose.js +1 -1
- package/dist/compose.min.js +1 -1
- package/dist/compose.mjs +1 -1
- package/dist/curry.es.js +1 -1
- package/dist/curry.es.min.js +1 -1
- package/dist/curry.js +1 -1
- package/dist/curry.min.js +1 -1
- package/dist/curry.mjs +1 -1
- package/dist/eq.es.js +1 -1
- package/dist/eq.es.min.js +1 -1
- package/dist/eq.js +1 -1
- package/dist/eq.min.js +1 -1
- package/dist/eq.mjs +1 -1
- package/dist/every.es.js +7 -7
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +7 -7
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +7 -7
- package/dist/filter.es.js +21 -21
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +21 -21
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +21 -21
- package/dist/flatMap.es.js +82 -82
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +82 -82
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +82 -82
- package/dist/forEach.es.js +7 -7
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +7 -7
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +7 -7
- package/dist/get.es.js +1 -1
- package/dist/get.es.min.js +1 -1
- package/dist/get.js +1 -1
- package/dist/get.min.js +1 -1
- package/dist/get.mjs +1 -1
- package/dist/gt.es.js +1 -1
- package/dist/gt.es.min.js +1 -1
- package/dist/gt.js +1 -1
- package/dist/gt.min.js +1 -1
- package/dist/gt.mjs +1 -1
- package/dist/gte.es.js +1 -1
- package/dist/gte.es.min.js +1 -1
- package/dist/gte.js +1 -1
- package/dist/gte.min.js +1 -1
- package/dist/gte.mjs +1 -1
- package/dist/lt.es.js +1 -1
- package/dist/lt.es.min.js +1 -1
- package/dist/lt.js +1 -1
- package/dist/lt.min.js +1 -1
- package/dist/lt.mjs +1 -1
- package/dist/lte.es.js +1 -1
- package/dist/lte.es.min.js +1 -1
- package/dist/lte.js +1 -1
- package/dist/lte.min.js +1 -1
- package/dist/lte.mjs +1 -1
- package/dist/map.es.js +83 -83
- package/dist/map.es.min.js +1 -1
- package/dist/map.js +83 -83
- package/dist/map.min.js +1 -1
- package/dist/map.mjs +83 -83
- package/dist/not.es.js +1 -1
- package/dist/not.es.min.js +1 -1
- package/dist/not.js +1 -1
- package/dist/not.min.js +1 -1
- package/dist/not.mjs +1 -1
- package/dist/omit.es.js +13 -13
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +13 -13
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +13 -13
- package/dist/or.es.js +1 -1
- package/dist/or.es.min.js +1 -1
- package/dist/or.js +1 -1
- package/dist/or.min.js +1 -1
- package/dist/or.mjs +1 -1
- package/dist/pick.es.js +1 -1
- package/dist/pick.es.min.js +1 -1
- package/dist/pick.js +1 -1
- package/dist/pick.min.js +1 -1
- package/dist/pick.mjs +1 -1
- package/dist/pipe.es.js +1 -1
- package/dist/pipe.es.min.js +1 -1
- package/dist/pipe.js +1 -1
- package/dist/pipe.min.js +1 -1
- package/dist/pipe.mjs +1 -1
- package/dist/reduce.es.js +5 -5
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +5 -5
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +5 -5
- package/dist/rubico.es.js +215 -215
- package/dist/rubico.es.min.js +1 -1
- package/dist/rubico.global.js +215 -215
- package/dist/rubico.global.min.js +1 -1
- package/dist/rubico.js +215 -215
- package/dist/rubico.min.js +1 -1
- package/dist/rubico.mjs +215 -215
- package/dist/set.es.js +1 -1
- package/dist/set.es.min.js +1 -1
- package/dist/set.js +1 -1
- package/dist/set.min.js +1 -1
- package/dist/set.mjs +1 -1
- package/dist/some.es.js +8 -8
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +8 -8
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +8 -8
- package/dist/switchCase.es.js +1 -1
- package/dist/switchCase.es.min.js +1 -1
- package/dist/switchCase.js +1 -1
- package/dist/switchCase.min.js +1 -1
- package/dist/switchCase.mjs +1 -1
- package/dist/tap.es.js +1 -1
- package/dist/tap.es.min.js +1 -1
- package/dist/tap.js +1 -1
- package/dist/tap.min.js +1 -1
- package/dist/tap.mjs +1 -1
- package/dist/thunkify.es.js +1 -1
- package/dist/thunkify.es.min.js +1 -1
- package/dist/thunkify.js +1 -1
- package/dist/thunkify.min.js +1 -1
- package/dist/thunkify.mjs +1 -1
- package/dist/transform.es.js +5 -5
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +5 -5
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +5 -5
- package/dist/tryCatch.es.js +1 -1
- package/dist/tryCatch.es.min.js +1 -1
- package/dist/tryCatch.js +1 -1
- package/dist/tryCatch.min.js +1 -1
- package/dist/tryCatch.mjs +1 -1
- package/dist/x/append.es.js +8 -8
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +8 -8
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +8 -8
- package/dist/x/callProp.es.js +1 -1
- package/dist/x/callProp.es.min.js +1 -1
- package/dist/x/callProp.js +1 -1
- package/dist/x/callProp.min.js +1 -1
- package/dist/x/callProp.mjs +1 -1
- package/dist/x/defaultsDeep.es.js +69 -37
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +69 -37
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.mjs +69 -37
- package/dist/x/differenceWith.es.js +14 -14
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +14 -14
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +14 -14
- package/dist/x/filterOut.es.js +21 -21
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +21 -21
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +21 -21
- package/dist/x/find.es.js +18 -18
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +18 -18
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +18 -18
- package/dist/x/findIndex.es.js +1 -1
- package/dist/x/findIndex.es.min.js +1 -1
- package/dist/x/findIndex.js +1 -1
- package/dist/x/findIndex.min.js +1 -1
- package/dist/x/findIndex.mjs +1 -1
- package/dist/x/first.es.js +1 -1
- package/dist/x/first.es.min.js +1 -1
- package/dist/x/first.js +1 -1
- package/dist/x/first.min.js +1 -1
- package/dist/x/first.mjs +1 -1
- package/dist/x/flatten.es.js +82 -82
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +82 -82
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +82 -82
- package/dist/x/groupBy.es.js +17 -17
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +17 -17
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +17 -17
- package/dist/x/has.es.js +1 -1
- package/dist/x/has.es.min.js +1 -1
- package/dist/x/has.js +1 -1
- package/dist/x/has.min.js +1 -1
- package/dist/x/has.mjs +1 -1
- package/dist/x/identity.es.js +1 -1
- package/dist/x/identity.es.min.js +1 -1
- package/dist/x/identity.js +1 -1
- package/dist/x/identity.min.js +1 -1
- package/dist/x/identity.mjs +1 -1
- package/dist/x/includes.es.js +1 -1
- package/dist/x/includes.es.min.js +1 -1
- package/dist/x/includes.js +1 -1
- package/dist/x/includes.min.js +1 -1
- package/dist/x/includes.mjs +1 -1
- package/dist/x/isDeepEqual.es.js +1 -1
- package/dist/x/isDeepEqual.es.min.js +1 -1
- package/dist/x/isDeepEqual.js +1 -1
- package/dist/x/isDeepEqual.min.js +1 -1
- package/dist/x/isDeepEqual.mjs +1 -1
- package/dist/x/isEmpty.es.js +1 -1
- package/dist/x/isEmpty.es.min.js +1 -1
- package/dist/x/isEmpty.js +1 -1
- package/dist/x/isEmpty.min.js +1 -1
- package/dist/x/isEmpty.mjs +1 -1
- package/dist/x/isEqual.es.js +1 -1
- package/dist/x/isEqual.es.min.js +1 -1
- package/dist/x/isEqual.js +1 -1
- package/dist/x/isEqual.min.js +1 -1
- package/dist/x/isEqual.mjs +1 -1
- package/dist/x/isFunction.es.js +1 -1
- package/dist/x/isFunction.es.min.js +1 -1
- package/dist/x/isFunction.js +1 -1
- package/dist/x/isFunction.min.js +1 -1
- package/dist/x/isFunction.mjs +1 -1
- package/dist/x/isIn.es.js +1 -1
- package/dist/x/isIn.es.min.js +1 -1
- package/dist/x/isIn.js +1 -1
- package/dist/x/isIn.min.js +1 -1
- package/dist/x/isIn.mjs +1 -1
- package/dist/x/isObject.es.js +1 -1
- package/dist/x/isObject.es.min.js +1 -1
- package/dist/x/isObject.js +1 -1
- package/dist/x/isObject.min.js +1 -1
- package/dist/x/isObject.mjs +1 -1
- package/dist/x/isString.es.js +1 -1
- package/dist/x/isString.es.min.js +1 -1
- package/dist/x/isString.js +1 -1
- package/dist/x/isString.min.js +1 -1
- package/dist/x/isString.mjs +1 -1
- package/dist/x/keys.es.js +1 -1
- package/dist/x/keys.es.min.js +1 -1
- package/dist/x/keys.js +1 -1
- package/dist/x/keys.min.js +1 -1
- package/dist/x/keys.mjs +1 -1
- package/dist/x/last.es.js +1 -1
- package/dist/x/last.es.min.js +1 -1
- package/dist/x/last.js +1 -1
- package/dist/x/last.min.js +1 -1
- package/dist/x/last.mjs +1 -1
- package/dist/x/maxBy.es.js +6 -6
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +6 -6
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +6 -6
- package/dist/x/noop.es.js +1 -1
- package/dist/x/noop.es.min.js +1 -1
- package/dist/x/noop.js +1 -1
- package/dist/x/noop.min.js +1 -1
- package/dist/x/noop.mjs +1 -1
- package/dist/x/pluck.es.js +83 -83
- package/dist/x/pluck.es.min.js +1 -1
- package/dist/x/pluck.js +83 -83
- package/dist/x/pluck.min.js +1 -1
- package/dist/x/pluck.mjs +83 -83
- package/dist/x/prepend.es.js +8 -8
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +8 -8
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +8 -8
- package/dist/x/size.es.js +1 -1
- package/dist/x/size.es.min.js +1 -1
- package/dist/x/size.js +1 -1
- package/dist/x/size.min.js +1 -1
- package/dist/x/size.mjs +1 -1
- package/dist/x/trace.es.js +1 -1
- package/dist/x/trace.es.min.js +1 -1
- package/dist/x/trace.js +1 -1
- package/dist/x/trace.min.js +1 -1
- package/dist/x/trace.mjs +1 -1
- package/dist/x/unionWith.es.js +39 -39
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +39 -39
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +39 -39
- package/dist/x/uniq.es.js +1 -1
- package/dist/x/uniq.es.min.js +1 -1
- package/dist/x/uniq.js +1 -1
- package/dist/x/uniq.min.js +1 -1
- package/dist/x/uniq.mjs +1 -1
- package/dist/x/unless.es.js +1 -1
- package/dist/x/unless.es.min.js +1 -1
- package/dist/x/unless.js +1 -1
- package/dist/x/unless.min.js +1 -1
- package/dist/x/unless.mjs +1 -1
- package/dist/x/values.es.js +1 -1
- package/dist/x/values.es.min.js +1 -1
- package/dist/x/values.js +1 -1
- package/dist/x/values.min.js +1 -1
- package/dist/x/values.mjs +1 -1
- package/dist/x/when.es.js +1 -1
- package/dist/x/when.es.min.js +1 -1
- package/dist/x/when.js +1 -1
- package/dist/x/when.min.js +1 -1
- package/dist/x/when.mjs +1 -1
- package/eq.js +32 -10
- package/es.js +215 -215
- package/every.d.ts +1 -1
- package/every.js +6 -3
- package/filter.d.ts +3 -3
- package/filter.js +14 -14
- package/flatMap.d.ts +9 -9
- package/flatMap.js +9 -9
- package/forEach.d.ts +1 -1
- package/forEach.js +19 -15
- package/global.js +1 -0
- package/gt.js +30 -13
- package/gte.js +31 -12
- package/index.js +215 -215
- package/lt.js +28 -9
- package/lte.js +34 -15
- package/map.d.ts +3 -3
- package/map.js +31 -31
- package/monad/Mux.benchmark.js +1 -1
- package/monad/Mux.js +6 -6
- package/monad/Struct.js +2 -2
- package/not.js +15 -7
- package/or.js +5 -2
- package/package.json +1 -1
- package/pipe.js +7 -13
- package/reduce.d.ts +7 -7
- package/reduce.js +16 -16
- package/some.d.ts +1 -1
- package/some.js +6 -3
- package/switchCase.d.ts +1 -1
- package/switchCase.js +7 -4
- package/tap.js +14 -4
- package/thunkify.js +2 -0
- package/transform.d.ts +1 -1
- package/transform.js +6 -15
- package/tryCatch.js +8 -2
- package/x/README.md +8 -8
- package/x/append.d.ts +2 -2
- package/x/append.js +8 -8
- package/x/defaultsDeep.js +94 -57
- package/x/defaultsDeep.test.js +24 -1
- package/x/differenceWith.js +13 -13
- package/x/find.d.ts +1 -1
- package/x/find.js +1 -1
- package/x/find.test.js +2 -2
- package/x/findIndex.test.js +1 -1
- package/x/first.d.ts +1 -1
- package/x/first.js +1 -1
- package/x/first.test.js +1 -1
- package/x/groupBy.d.ts +1 -1
- package/x/groupBy.js +13 -13
- package/x/last.d.ts +1 -1
- package/x/last.js +1 -1
- package/x/last.test.js +1 -1
- package/x/maxBy.d.ts +7 -7
- package/x/maxBy.js +13 -13
- package/x/maxBy.test.js +5 -5
- package/x/pluck.test.js +1 -1
- package/x/prepend.d.ts +2 -2
- package/x/prepend.js +8 -8
- package/x/size.d.ts +1 -1
- package/x/size.js +1 -1
- package/x/unionWith.js +11 -11
- package/x/unionWith.test.js +5 -5
- package/global.d.ts +0 -1
package/dist/flatMap.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.7.
|
|
2
|
+
* rubico v2.7.5
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2025 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -351,11 +351,11 @@ const mapReduce = function (map, reducer, result) {
|
|
|
351
351
|
|
|
352
352
|
const reducerConcat = (
|
|
353
353
|
reducerA, reducerB,
|
|
354
|
-
) => function pipedReducer(result,
|
|
355
|
-
const intermediate = reducerA(result,
|
|
354
|
+
) => function pipedReducer(result, element) {
|
|
355
|
+
const intermediate = reducerA(result, element)
|
|
356
356
|
return isPromise(intermediate)
|
|
357
|
-
? intermediate.then(curry2(reducerB, __,
|
|
358
|
-
: reducerB(intermediate,
|
|
357
|
+
? intermediate.then(curry2(reducerB, __, element))
|
|
358
|
+
: reducerB(intermediate, element)
|
|
359
359
|
}
|
|
360
360
|
|
|
361
361
|
const genericReduce = function (collection, reducer, result) {
|
|
@@ -422,7 +422,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
422
422
|
const monadAsArray = genericReduce(
|
|
423
423
|
flatMapper(iteration.value),
|
|
424
424
|
arrayPush,
|
|
425
|
-
[]) // this will always have at least one
|
|
425
|
+
[]) // this will always have at least one element
|
|
426
426
|
if (monadAsArray.length > 1) {
|
|
427
427
|
buffer = monadAsArray
|
|
428
428
|
bufferIndex = 1
|
|
@@ -507,8 +507,8 @@ const funcConcatSync = (
|
|
|
507
507
|
|
|
508
508
|
const asyncIteratorForEach = async function (asyncIterator, callback) {
|
|
509
509
|
const promises = []
|
|
510
|
-
for await (const
|
|
511
|
-
const operation = callback(
|
|
510
|
+
for await (const element of asyncIterator) {
|
|
511
|
+
const operation = callback(element)
|
|
512
512
|
if (isPromise(operation)) {
|
|
513
513
|
promises.push(operation)
|
|
514
514
|
}
|
|
@@ -524,44 +524,44 @@ const arrayFlatten = function (array) {
|
|
|
524
524
|
let index = -1
|
|
525
525
|
|
|
526
526
|
while (++index < length) {
|
|
527
|
-
const
|
|
528
|
-
if (isArray(
|
|
529
|
-
const
|
|
530
|
-
let
|
|
531
|
-
while (++
|
|
532
|
-
result.push(
|
|
527
|
+
const element = array[index]
|
|
528
|
+
if (isArray(element)) {
|
|
529
|
+
const elementLength = element.length
|
|
530
|
+
let elementIndex = -1
|
|
531
|
+
while (++elementIndex < elementLength) {
|
|
532
|
+
result.push(element[elementIndex])
|
|
533
533
|
}
|
|
534
|
-
} else if (
|
|
535
|
-
result.push(
|
|
536
|
-
} else if (typeof
|
|
537
|
-
promises.push(
|
|
538
|
-
} else if (typeof
|
|
539
|
-
for (const
|
|
540
|
-
result.push(
|
|
534
|
+
} else if (element == null) {
|
|
535
|
+
result.push(element)
|
|
536
|
+
} else if (typeof element.then == 'function') {
|
|
537
|
+
promises.push(element.then(curry2(arrayPush, result, __)))
|
|
538
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
539
|
+
for (const subElement of element) {
|
|
540
|
+
result.push(subElement)
|
|
541
541
|
}
|
|
542
|
-
} else if (typeof
|
|
542
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
543
543
|
promises.push(asyncIteratorForEach(
|
|
544
|
-
|
|
545
|
-
} else if (typeof
|
|
546
|
-
const monadValue =
|
|
544
|
+
element[symbolAsyncIterator](), curry2(arrayPush, result, __)))
|
|
545
|
+
} else if (typeof element.chain == 'function') {
|
|
546
|
+
const monadValue = element.chain(identity)
|
|
547
547
|
isPromise(monadValue)
|
|
548
548
|
? promises.push(monadValue.then(curry2(arrayPush, result, __)))
|
|
549
549
|
: result.push(monadValue)
|
|
550
|
-
} else if (typeof
|
|
551
|
-
const monadValue =
|
|
550
|
+
} else if (typeof element.flatMap == 'function') {
|
|
551
|
+
const monadValue = element.flatMap(identity)
|
|
552
552
|
isPromise(monadValue)
|
|
553
553
|
? promises.push(monadValue.then(curry2(arrayPush, result, __)))
|
|
554
554
|
: result.push(monadValue)
|
|
555
|
-
} else if (typeof
|
|
556
|
-
const folded =
|
|
555
|
+
} else if (typeof element.reduce == 'function') {
|
|
556
|
+
const folded = element.reduce(funcConcatSync(
|
|
557
557
|
getArg1, curry2(arrayPush, result, __)), null)
|
|
558
558
|
isPromise(folded) && promises.push(folded)
|
|
559
|
-
} else if (
|
|
560
|
-
for (const key in
|
|
561
|
-
result.push(
|
|
559
|
+
} else if (element.constructor == Object) {
|
|
560
|
+
for (const key in element) {
|
|
561
|
+
result.push(element[key])
|
|
562
562
|
}
|
|
563
563
|
} else {
|
|
564
|
-
result.push(
|
|
564
|
+
result.push(element)
|
|
565
565
|
}
|
|
566
566
|
}
|
|
567
567
|
return promises.length == 0
|
|
@@ -576,11 +576,11 @@ const arrayMap = function (array, mapper) {
|
|
|
576
576
|
isAsync = false
|
|
577
577
|
|
|
578
578
|
while (++index < arrayLength) {
|
|
579
|
-
const
|
|
580
|
-
if (isPromise(
|
|
579
|
+
const resultElement = mapper(array[index], index, array)
|
|
580
|
+
if (isPromise(resultElement)) {
|
|
581
581
|
isAsync = true
|
|
582
582
|
}
|
|
583
|
-
result[index] =
|
|
583
|
+
result[index] = resultElement
|
|
584
584
|
}
|
|
585
585
|
return isAsync ? promiseAll(result) : result
|
|
586
586
|
}
|
|
@@ -621,11 +621,11 @@ const objectMap = function (object, mapper) {
|
|
|
621
621
|
const result = {}
|
|
622
622
|
let isAsync = false
|
|
623
623
|
for (const key in object) {
|
|
624
|
-
const
|
|
625
|
-
if (isPromise(
|
|
624
|
+
const resultElement = mapper(object[key], key, object)
|
|
625
|
+
if (isPromise(resultElement)) {
|
|
626
626
|
isAsync = true
|
|
627
627
|
}
|
|
628
|
-
result[key] =
|
|
628
|
+
result[key] = resultElement
|
|
629
629
|
}
|
|
630
630
|
return isAsync ? promiseObjectAll(result) : result
|
|
631
631
|
}
|
|
@@ -640,31 +640,31 @@ const objectFlatten = function (object) {
|
|
|
640
640
|
getResult = () => result
|
|
641
641
|
|
|
642
642
|
for (const key in object) {
|
|
643
|
-
const
|
|
644
|
-
if (
|
|
643
|
+
const element = object[key]
|
|
644
|
+
if (element == null) {
|
|
645
645
|
continue
|
|
646
|
-
} else if (typeof
|
|
647
|
-
for (const
|
|
648
|
-
objectAssign(result,
|
|
646
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
647
|
+
for (const monadElement of element) {
|
|
648
|
+
objectAssign(result, monadElement)
|
|
649
649
|
}
|
|
650
|
-
} else if (typeof
|
|
650
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
651
651
|
promises.push(
|
|
652
|
-
asyncIteratorForEach(
|
|
653
|
-
} else if (typeof
|
|
654
|
-
const monadValue =
|
|
652
|
+
asyncIteratorForEach(element[symbolAsyncIterator](), resultAssign))
|
|
653
|
+
} else if (typeof element.chain == 'function') {
|
|
654
|
+
const monadValue = element.chain(identity)
|
|
655
655
|
isPromise(monadValue)
|
|
656
656
|
? promises.push(monadValue.then(resultAssign))
|
|
657
657
|
: objectAssign(result, monadValue)
|
|
658
|
-
} else if (typeof
|
|
659
|
-
const monadValue =
|
|
658
|
+
} else if (typeof element.flatMap == 'function') {
|
|
659
|
+
const monadValue = element.flatMap(identity)
|
|
660
660
|
isPromise(monadValue)
|
|
661
661
|
? promises.push(monadValue.then(resultAssign))
|
|
662
662
|
: resultAssign(monadValue)
|
|
663
|
-
} else if (typeof
|
|
664
|
-
const folded =
|
|
663
|
+
} else if (typeof element.reduce == 'function') {
|
|
664
|
+
const folded = element.reduce(resultAssignReducer, null)
|
|
665
665
|
isPromise(folded) && promises.push(folded)
|
|
666
666
|
} else {
|
|
667
|
-
objectAssign(result,
|
|
667
|
+
objectAssign(result, element)
|
|
668
668
|
}
|
|
669
669
|
}
|
|
670
670
|
return promises.length == 0
|
|
@@ -684,12 +684,12 @@ const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
|
684
684
|
const setMap = function (set, mapper) {
|
|
685
685
|
const result = new Set(),
|
|
686
686
|
promises = []
|
|
687
|
-
for (const
|
|
688
|
-
const
|
|
689
|
-
if (isPromise(
|
|
690
|
-
promises.push(
|
|
687
|
+
for (const element of set) {
|
|
688
|
+
const resultElement = mapper(element, element, set)
|
|
689
|
+
if (isPromise(resultElement)) {
|
|
690
|
+
promises.push(resultElement.then(curry3(callPropUnary, result, 'add', __)))
|
|
691
691
|
} else {
|
|
692
|
-
result.add(
|
|
692
|
+
result.add(resultElement)
|
|
693
693
|
}
|
|
694
694
|
}
|
|
695
695
|
return promises.length == 0
|
|
@@ -701,45 +701,45 @@ const setFlatten = function (set) {
|
|
|
701
701
|
const size = set.size,
|
|
702
702
|
promises = [],
|
|
703
703
|
result = new Set(),
|
|
704
|
-
resultAddReducer = (_,
|
|
704
|
+
resultAddReducer = (_, subElement) => result.add(subElement),
|
|
705
705
|
resultAdd = curry3(callPropUnary, result, 'add', __),
|
|
706
706
|
getResult = () => result
|
|
707
707
|
|
|
708
|
-
for (const
|
|
709
|
-
if (isArray(
|
|
710
|
-
const
|
|
711
|
-
let
|
|
712
|
-
while (++
|
|
713
|
-
result.add(
|
|
708
|
+
for (const element of set) {
|
|
709
|
+
if (isArray(element)) {
|
|
710
|
+
const elementLength = element.length
|
|
711
|
+
let elementIndex = -1
|
|
712
|
+
while (++elementIndex < elementLength) {
|
|
713
|
+
result.add(element[elementIndex])
|
|
714
714
|
}
|
|
715
|
-
} else if (
|
|
716
|
-
result.add(
|
|
717
|
-
} else if (typeof
|
|
718
|
-
for (const
|
|
719
|
-
result.add(
|
|
715
|
+
} else if (element == null) {
|
|
716
|
+
result.add(element)
|
|
717
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
718
|
+
for (const subElement of element) {
|
|
719
|
+
result.add(subElement)
|
|
720
720
|
}
|
|
721
|
-
} else if (typeof
|
|
721
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
722
722
|
promises.push(
|
|
723
|
-
asyncIteratorForEach(
|
|
724
|
-
} else if (typeof
|
|
725
|
-
const monadValue =
|
|
723
|
+
asyncIteratorForEach(element[symbolAsyncIterator](), resultAdd))
|
|
724
|
+
} else if (typeof element.chain == 'function') {
|
|
725
|
+
const monadValue = element.chain(identity)
|
|
726
726
|
isPromise(monadValue)
|
|
727
727
|
? promises.push(monadValue.then(resultAdd))
|
|
728
728
|
: result.add(monadValue)
|
|
729
|
-
} else if (typeof
|
|
730
|
-
const monadValue =
|
|
729
|
+
} else if (typeof element.flatMap == 'function') {
|
|
730
|
+
const monadValue = element.flatMap(identity)
|
|
731
731
|
isPromise(monadValue)
|
|
732
732
|
? promises.push(monadValue.then(resultAdd))
|
|
733
733
|
: result.add(monadValue)
|
|
734
|
-
} else if (typeof
|
|
735
|
-
const folded =
|
|
734
|
+
} else if (typeof element.reduce == 'function') {
|
|
735
|
+
const folded = element.reduce(resultAddReducer, null)
|
|
736
736
|
isPromise(folded) && promises.push(folded)
|
|
737
|
-
} else if (
|
|
738
|
-
for (const key in
|
|
739
|
-
result.add(
|
|
737
|
+
} else if (element.constructor == Object) {
|
|
738
|
+
for (const key in element) {
|
|
739
|
+
result.add(element[key])
|
|
740
740
|
}
|
|
741
741
|
} else {
|
|
742
|
-
result.add(
|
|
742
|
+
result.add(element)
|
|
743
743
|
}
|
|
744
744
|
}
|
|
745
745
|
return promises.length == 0 ? result : promiseAll(promises).then(getResult)
|
package/dist/flatMap.es.min.js
CHANGED
package/dist/flatMap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.7.
|
|
2
|
+
* rubico v2.7.5
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2025 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -357,11 +357,11 @@ const mapReduce = function (map, reducer, result) {
|
|
|
357
357
|
|
|
358
358
|
const reducerConcat = (
|
|
359
359
|
reducerA, reducerB,
|
|
360
|
-
) => function pipedReducer(result,
|
|
361
|
-
const intermediate = reducerA(result,
|
|
360
|
+
) => function pipedReducer(result, element) {
|
|
361
|
+
const intermediate = reducerA(result, element)
|
|
362
362
|
return isPromise(intermediate)
|
|
363
|
-
? intermediate.then(curry2(reducerB, __,
|
|
364
|
-
: reducerB(intermediate,
|
|
363
|
+
? intermediate.then(curry2(reducerB, __, element))
|
|
364
|
+
: reducerB(intermediate, element)
|
|
365
365
|
}
|
|
366
366
|
|
|
367
367
|
const genericReduce = function (collection, reducer, result) {
|
|
@@ -428,7 +428,7 @@ const FlatMappingIterator = function (iterator, flatMapper) {
|
|
|
428
428
|
const monadAsArray = genericReduce(
|
|
429
429
|
flatMapper(iteration.value),
|
|
430
430
|
arrayPush,
|
|
431
|
-
[]) // this will always have at least one
|
|
431
|
+
[]) // this will always have at least one element
|
|
432
432
|
if (monadAsArray.length > 1) {
|
|
433
433
|
buffer = monadAsArray
|
|
434
434
|
bufferIndex = 1
|
|
@@ -513,8 +513,8 @@ const funcConcatSync = (
|
|
|
513
513
|
|
|
514
514
|
const asyncIteratorForEach = async function (asyncIterator, callback) {
|
|
515
515
|
const promises = []
|
|
516
|
-
for await (const
|
|
517
|
-
const operation = callback(
|
|
516
|
+
for await (const element of asyncIterator) {
|
|
517
|
+
const operation = callback(element)
|
|
518
518
|
if (isPromise(operation)) {
|
|
519
519
|
promises.push(operation)
|
|
520
520
|
}
|
|
@@ -530,44 +530,44 @@ const arrayFlatten = function (array) {
|
|
|
530
530
|
let index = -1
|
|
531
531
|
|
|
532
532
|
while (++index < length) {
|
|
533
|
-
const
|
|
534
|
-
if (isArray(
|
|
535
|
-
const
|
|
536
|
-
let
|
|
537
|
-
while (++
|
|
538
|
-
result.push(
|
|
533
|
+
const element = array[index]
|
|
534
|
+
if (isArray(element)) {
|
|
535
|
+
const elementLength = element.length
|
|
536
|
+
let elementIndex = -1
|
|
537
|
+
while (++elementIndex < elementLength) {
|
|
538
|
+
result.push(element[elementIndex])
|
|
539
539
|
}
|
|
540
|
-
} else if (
|
|
541
|
-
result.push(
|
|
542
|
-
} else if (typeof
|
|
543
|
-
promises.push(
|
|
544
|
-
} else if (typeof
|
|
545
|
-
for (const
|
|
546
|
-
result.push(
|
|
540
|
+
} else if (element == null) {
|
|
541
|
+
result.push(element)
|
|
542
|
+
} else if (typeof element.then == 'function') {
|
|
543
|
+
promises.push(element.then(curry2(arrayPush, result, __)))
|
|
544
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
545
|
+
for (const subElement of element) {
|
|
546
|
+
result.push(subElement)
|
|
547
547
|
}
|
|
548
|
-
} else if (typeof
|
|
548
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
549
549
|
promises.push(asyncIteratorForEach(
|
|
550
|
-
|
|
551
|
-
} else if (typeof
|
|
552
|
-
const monadValue =
|
|
550
|
+
element[symbolAsyncIterator](), curry2(arrayPush, result, __)))
|
|
551
|
+
} else if (typeof element.chain == 'function') {
|
|
552
|
+
const monadValue = element.chain(identity)
|
|
553
553
|
isPromise(monadValue)
|
|
554
554
|
? promises.push(monadValue.then(curry2(arrayPush, result, __)))
|
|
555
555
|
: result.push(monadValue)
|
|
556
|
-
} else if (typeof
|
|
557
|
-
const monadValue =
|
|
556
|
+
} else if (typeof element.flatMap == 'function') {
|
|
557
|
+
const monadValue = element.flatMap(identity)
|
|
558
558
|
isPromise(monadValue)
|
|
559
559
|
? promises.push(monadValue.then(curry2(arrayPush, result, __)))
|
|
560
560
|
: result.push(monadValue)
|
|
561
|
-
} else if (typeof
|
|
562
|
-
const folded =
|
|
561
|
+
} else if (typeof element.reduce == 'function') {
|
|
562
|
+
const folded = element.reduce(funcConcatSync(
|
|
563
563
|
getArg1, curry2(arrayPush, result, __)), null)
|
|
564
564
|
isPromise(folded) && promises.push(folded)
|
|
565
|
-
} else if (
|
|
566
|
-
for (const key in
|
|
567
|
-
result.push(
|
|
565
|
+
} else if (element.constructor == Object) {
|
|
566
|
+
for (const key in element) {
|
|
567
|
+
result.push(element[key])
|
|
568
568
|
}
|
|
569
569
|
} else {
|
|
570
|
-
result.push(
|
|
570
|
+
result.push(element)
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
573
|
return promises.length == 0
|
|
@@ -582,11 +582,11 @@ const arrayMap = function (array, mapper) {
|
|
|
582
582
|
isAsync = false
|
|
583
583
|
|
|
584
584
|
while (++index < arrayLength) {
|
|
585
|
-
const
|
|
586
|
-
if (isPromise(
|
|
585
|
+
const resultElement = mapper(array[index], index, array)
|
|
586
|
+
if (isPromise(resultElement)) {
|
|
587
587
|
isAsync = true
|
|
588
588
|
}
|
|
589
|
-
result[index] =
|
|
589
|
+
result[index] = resultElement
|
|
590
590
|
}
|
|
591
591
|
return isAsync ? promiseAll(result) : result
|
|
592
592
|
}
|
|
@@ -627,11 +627,11 @@ const objectMap = function (object, mapper) {
|
|
|
627
627
|
const result = {}
|
|
628
628
|
let isAsync = false
|
|
629
629
|
for (const key in object) {
|
|
630
|
-
const
|
|
631
|
-
if (isPromise(
|
|
630
|
+
const resultElement = mapper(object[key], key, object)
|
|
631
|
+
if (isPromise(resultElement)) {
|
|
632
632
|
isAsync = true
|
|
633
633
|
}
|
|
634
|
-
result[key] =
|
|
634
|
+
result[key] = resultElement
|
|
635
635
|
}
|
|
636
636
|
return isAsync ? promiseObjectAll(result) : result
|
|
637
637
|
}
|
|
@@ -646,31 +646,31 @@ const objectFlatten = function (object) {
|
|
|
646
646
|
getResult = () => result
|
|
647
647
|
|
|
648
648
|
for (const key in object) {
|
|
649
|
-
const
|
|
650
|
-
if (
|
|
649
|
+
const element = object[key]
|
|
650
|
+
if (element == null) {
|
|
651
651
|
continue
|
|
652
|
-
} else if (typeof
|
|
653
|
-
for (const
|
|
654
|
-
objectAssign(result,
|
|
652
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
653
|
+
for (const monadElement of element) {
|
|
654
|
+
objectAssign(result, monadElement)
|
|
655
655
|
}
|
|
656
|
-
} else if (typeof
|
|
656
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
657
657
|
promises.push(
|
|
658
|
-
asyncIteratorForEach(
|
|
659
|
-
} else if (typeof
|
|
660
|
-
const monadValue =
|
|
658
|
+
asyncIteratorForEach(element[symbolAsyncIterator](), resultAssign))
|
|
659
|
+
} else if (typeof element.chain == 'function') {
|
|
660
|
+
const monadValue = element.chain(identity)
|
|
661
661
|
isPromise(monadValue)
|
|
662
662
|
? promises.push(monadValue.then(resultAssign))
|
|
663
663
|
: objectAssign(result, monadValue)
|
|
664
|
-
} else if (typeof
|
|
665
|
-
const monadValue =
|
|
664
|
+
} else if (typeof element.flatMap == 'function') {
|
|
665
|
+
const monadValue = element.flatMap(identity)
|
|
666
666
|
isPromise(monadValue)
|
|
667
667
|
? promises.push(monadValue.then(resultAssign))
|
|
668
668
|
: resultAssign(monadValue)
|
|
669
|
-
} else if (typeof
|
|
670
|
-
const folded =
|
|
669
|
+
} else if (typeof element.reduce == 'function') {
|
|
670
|
+
const folded = element.reduce(resultAssignReducer, null)
|
|
671
671
|
isPromise(folded) && promises.push(folded)
|
|
672
672
|
} else {
|
|
673
|
-
objectAssign(result,
|
|
673
|
+
objectAssign(result, element)
|
|
674
674
|
}
|
|
675
675
|
}
|
|
676
676
|
return promises.length == 0
|
|
@@ -690,12 +690,12 @@ const callPropUnary = (value, property, arg0) => value[property](arg0)
|
|
|
690
690
|
const setMap = function (set, mapper) {
|
|
691
691
|
const result = new Set(),
|
|
692
692
|
promises = []
|
|
693
|
-
for (const
|
|
694
|
-
const
|
|
695
|
-
if (isPromise(
|
|
696
|
-
promises.push(
|
|
693
|
+
for (const element of set) {
|
|
694
|
+
const resultElement = mapper(element, element, set)
|
|
695
|
+
if (isPromise(resultElement)) {
|
|
696
|
+
promises.push(resultElement.then(curry3(callPropUnary, result, 'add', __)))
|
|
697
697
|
} else {
|
|
698
|
-
result.add(
|
|
698
|
+
result.add(resultElement)
|
|
699
699
|
}
|
|
700
700
|
}
|
|
701
701
|
return promises.length == 0
|
|
@@ -707,45 +707,45 @@ const setFlatten = function (set) {
|
|
|
707
707
|
const size = set.size,
|
|
708
708
|
promises = [],
|
|
709
709
|
result = new Set(),
|
|
710
|
-
resultAddReducer = (_,
|
|
710
|
+
resultAddReducer = (_, subElement) => result.add(subElement),
|
|
711
711
|
resultAdd = curry3(callPropUnary, result, 'add', __),
|
|
712
712
|
getResult = () => result
|
|
713
713
|
|
|
714
|
-
for (const
|
|
715
|
-
if (isArray(
|
|
716
|
-
const
|
|
717
|
-
let
|
|
718
|
-
while (++
|
|
719
|
-
result.add(
|
|
714
|
+
for (const element of set) {
|
|
715
|
+
if (isArray(element)) {
|
|
716
|
+
const elementLength = element.length
|
|
717
|
+
let elementIndex = -1
|
|
718
|
+
while (++elementIndex < elementLength) {
|
|
719
|
+
result.add(element[elementIndex])
|
|
720
720
|
}
|
|
721
|
-
} else if (
|
|
722
|
-
result.add(
|
|
723
|
-
} else if (typeof
|
|
724
|
-
for (const
|
|
725
|
-
result.add(
|
|
721
|
+
} else if (element == null) {
|
|
722
|
+
result.add(element)
|
|
723
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
724
|
+
for (const subElement of element) {
|
|
725
|
+
result.add(subElement)
|
|
726
726
|
}
|
|
727
|
-
} else if (typeof
|
|
727
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
728
728
|
promises.push(
|
|
729
|
-
asyncIteratorForEach(
|
|
730
|
-
} else if (typeof
|
|
731
|
-
const monadValue =
|
|
729
|
+
asyncIteratorForEach(element[symbolAsyncIterator](), resultAdd))
|
|
730
|
+
} else if (typeof element.chain == 'function') {
|
|
731
|
+
const monadValue = element.chain(identity)
|
|
732
732
|
isPromise(monadValue)
|
|
733
733
|
? promises.push(monadValue.then(resultAdd))
|
|
734
734
|
: result.add(monadValue)
|
|
735
|
-
} else if (typeof
|
|
736
|
-
const monadValue =
|
|
735
|
+
} else if (typeof element.flatMap == 'function') {
|
|
736
|
+
const monadValue = element.flatMap(identity)
|
|
737
737
|
isPromise(monadValue)
|
|
738
738
|
? promises.push(monadValue.then(resultAdd))
|
|
739
739
|
: result.add(monadValue)
|
|
740
|
-
} else if (typeof
|
|
741
|
-
const folded =
|
|
740
|
+
} else if (typeof element.reduce == 'function') {
|
|
741
|
+
const folded = element.reduce(resultAddReducer, null)
|
|
742
742
|
isPromise(folded) && promises.push(folded)
|
|
743
|
-
} else if (
|
|
744
|
-
for (const key in
|
|
745
|
-
result.add(
|
|
743
|
+
} else if (element.constructor == Object) {
|
|
744
|
+
for (const key in element) {
|
|
745
|
+
result.add(element[key])
|
|
746
746
|
}
|
|
747
747
|
} else {
|
|
748
|
-
result.add(
|
|
748
|
+
result.add(element)
|
|
749
749
|
}
|
|
750
750
|
}
|
|
751
751
|
return promises.length == 0 ? result : promiseAll(promises).then(getResult)
|
package/dist/flatMap.min.js
CHANGED