rubico 2.7.3 → 2.7.4
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/README.md +14 -17
- 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/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
|
@@ -13,6 +13,6 @@ export = iteratorReduce;
|
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
15
15
|
* @description
|
|
16
|
-
* Execute a reducer for each
|
|
16
|
+
* Execute a reducer for each element of an iterator, returning a single value.
|
|
17
17
|
*/
|
|
18
18
|
declare function iteratorReduce(iterator: any, reducer: any, result: any): any;
|
|
@@ -16,7 +16,7 @@ const isPromise = require('./isPromise')
|
|
|
16
16
|
* ```
|
|
17
17
|
*
|
|
18
18
|
* @description
|
|
19
|
-
* Execute a reducer for each
|
|
19
|
+
* Execute a reducer for each element of an iterator or async iterator, returning a promise of a single value.
|
|
20
20
|
*/
|
|
21
21
|
const iteratorReduceAsync = async function (
|
|
22
22
|
iterator, reducer, result,
|
|
@@ -50,7 +50,7 @@ const iteratorReduceAsync = async function (
|
|
|
50
50
|
* ```
|
|
51
51
|
*
|
|
52
52
|
* @description
|
|
53
|
-
* Execute a reducer for each
|
|
53
|
+
* Execute a reducer for each element of an iterator, returning a single value.
|
|
54
54
|
*/
|
|
55
55
|
const iteratorReduce = function (iterator, reducer, result) {
|
|
56
56
|
let iteration = iterator.next()
|
|
@@ -14,8 +14,8 @@ const isPromise = require('./isPromise')
|
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
16
|
const iteratorSome = function (iterator, predicate) {
|
|
17
|
-
for (const
|
|
18
|
-
const predication = predicate(
|
|
17
|
+
for (const element of iterator) {
|
|
18
|
+
const predication = predicate(element)
|
|
19
19
|
if (isPromise(predication)) {
|
|
20
20
|
return asyncIteratorSome(
|
|
21
21
|
iterator, predicate, new Set([SelfReferencingPromise(predication)]))
|
package/_internal/mapFilter.js
CHANGED
|
@@ -30,15 +30,15 @@ const promiseAll = require('./promiseAll')
|
|
|
30
30
|
const mapFilter = function (map, predicate) {
|
|
31
31
|
const result = new Map(),
|
|
32
32
|
promises = []
|
|
33
|
-
for (const [key,
|
|
34
|
-
const predication = predicate(
|
|
33
|
+
for (const [key, element] of map) {
|
|
34
|
+
const predication = predicate(element, key, map)
|
|
35
35
|
if (isPromise(predication)) {
|
|
36
36
|
promises.push(predication.then(curry3(thunkConditional,
|
|
37
37
|
__,
|
|
38
|
-
thunkify4(callPropBinary, result, 'set', key,
|
|
38
|
+
thunkify4(callPropBinary, result, 'set', key, element),
|
|
39
39
|
noop)))
|
|
40
40
|
} else if (predication) {
|
|
41
|
-
result.set(key,
|
|
41
|
+
result.set(key, element)
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
return promises.length == 0 ? result
|
package/_internal/mapMap.d.ts
CHANGED
package/_internal/mapMap.js
CHANGED
|
@@ -12,7 +12,7 @@ const callPropBinary = require('./callPropBinary')
|
|
|
12
12
|
* ```coffeescript [specscript]
|
|
13
13
|
* mapMap(
|
|
14
14
|
* value Map,
|
|
15
|
-
* mapper (
|
|
15
|
+
* mapper (element any, key any, value)=>Promise|any
|
|
16
16
|
* ) -> Promise|Map<any=>any>
|
|
17
17
|
* ```
|
|
18
18
|
*
|
|
@@ -22,13 +22,13 @@ const callPropBinary = require('./callPropBinary')
|
|
|
22
22
|
const mapMap = function (value, mapper) {
|
|
23
23
|
const result = new Map(),
|
|
24
24
|
promises = []
|
|
25
|
-
for (const [key,
|
|
26
|
-
const
|
|
27
|
-
if (isPromise(
|
|
28
|
-
promises.push(
|
|
25
|
+
for (const [key, element] of value) {
|
|
26
|
+
const resultElement = mapper(element, key, value)
|
|
27
|
+
if (isPromise(resultElement)) {
|
|
28
|
+
promises.push(resultElement.then(
|
|
29
29
|
curry4(callPropBinary, result, 'set', key, __)))
|
|
30
30
|
} else {
|
|
31
|
-
result.set(key,
|
|
31
|
+
result.set(key, resultElement)
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
return promises.length == 0
|
package/_internal/mapMapPool.js
CHANGED
|
@@ -27,16 +27,16 @@ const _mapMapPoolAsync = async function (
|
|
|
27
27
|
await promiseRace(promises)
|
|
28
28
|
}
|
|
29
29
|
const key = iteration.value[0]
|
|
30
|
-
const
|
|
31
|
-
if (isPromise(
|
|
32
|
-
result.set(key,
|
|
33
|
-
const selfDeletingPromise =
|
|
30
|
+
const resultElement = f(iteration.value[1], key, m)
|
|
31
|
+
if (isPromise(resultElement)) {
|
|
32
|
+
result.set(key, resultElement)
|
|
33
|
+
const selfDeletingPromise = resultElement.then(resolvedValue => {
|
|
34
34
|
promises.delete(selfDeletingPromise)
|
|
35
35
|
result.set(key, resolvedValue)
|
|
36
36
|
})
|
|
37
37
|
promises.add(selfDeletingPromise)
|
|
38
38
|
} else {
|
|
39
|
-
result.set(key,
|
|
39
|
+
result.set(key, resultElement)
|
|
40
40
|
}
|
|
41
41
|
iteration = iterator.next()
|
|
42
42
|
}
|
|
@@ -60,18 +60,18 @@ const mapMapPool = function (m, concurrency, f) {
|
|
|
60
60
|
let iteration = iterator.next()
|
|
61
61
|
while (!iteration.done) {
|
|
62
62
|
const key = iteration.value[0]
|
|
63
|
-
const
|
|
64
|
-
if (isPromise(
|
|
63
|
+
const resultElement = f(iteration.value[1], key, m)
|
|
64
|
+
if (isPromise(resultElement)) {
|
|
65
65
|
const promises = new Set()
|
|
66
|
-
result.set(key,
|
|
67
|
-
const selfDeletingPromise =
|
|
66
|
+
result.set(key, resultElement)
|
|
67
|
+
const selfDeletingPromise = resultElement.then(resolvedValue => {
|
|
68
68
|
promises.delete(selfDeletingPromise)
|
|
69
69
|
result.set(key, resolvedValue)
|
|
70
70
|
})
|
|
71
71
|
promises.add(selfDeletingPromise)
|
|
72
72
|
return _mapMapPoolAsync(m, iterator, concurrency, f, result, promises)
|
|
73
73
|
}
|
|
74
|
-
result.set(key,
|
|
74
|
+
result.set(key, resultElement)
|
|
75
75
|
iteration = iterator.next()
|
|
76
76
|
}
|
|
77
77
|
return result
|
|
@@ -14,11 +14,11 @@ const symbolIterator = require('./symbolIterator')
|
|
|
14
14
|
const _mapMapSeriesAsync = async function (iterator, f, result) {
|
|
15
15
|
let iteration = iterator.next()
|
|
16
16
|
while (!iteration.done) {
|
|
17
|
-
let
|
|
18
|
-
if (isPromise(
|
|
19
|
-
|
|
17
|
+
let resultElement = f(iteration.value[1])
|
|
18
|
+
if (isPromise(resultElement)) {
|
|
19
|
+
resultElement = await resultElement
|
|
20
20
|
}
|
|
21
|
-
result.set(iteration.value[0],
|
|
21
|
+
result.set(iteration.value[0], resultElement)
|
|
22
22
|
iteration = iterator.next()
|
|
23
23
|
}
|
|
24
24
|
return result
|
|
@@ -33,13 +33,13 @@ const _mapMapSeriesAsync = async function (iterator, f, result) {
|
|
|
33
33
|
* value any,
|
|
34
34
|
* key any,
|
|
35
35
|
* map Map
|
|
36
|
-
* )=>(
|
|
36
|
+
* )=>(resultElement Promise|any)
|
|
37
37
|
*
|
|
38
38
|
* mapMapSeries(map Map, f MapMapper) -> Promise|Map
|
|
39
39
|
* ```
|
|
40
40
|
*
|
|
41
41
|
* @description
|
|
42
|
-
* Apply a mapper in series to each value of a Map, returning a new Map of mapped
|
|
42
|
+
* Apply a mapper in series to each value of a Map, returning a new Map of mapped elements. Mapper may be asynchronous.
|
|
43
43
|
*/
|
|
44
44
|
const mapMapSeries = function (map, f) {
|
|
45
45
|
const result = new Map()
|
|
@@ -47,14 +47,14 @@ const mapMapSeries = function (map, f) {
|
|
|
47
47
|
let iteration = iterator.next()
|
|
48
48
|
while (!iteration.done) {
|
|
49
49
|
const key = iteration.value[0]
|
|
50
|
-
const
|
|
51
|
-
if (isPromise(
|
|
52
|
-
return
|
|
50
|
+
const resultElement = f(iteration.value[1])
|
|
51
|
+
if (isPromise(resultElement)) {
|
|
52
|
+
return resultElement.then(funcConcat(
|
|
53
53
|
curry3(mapSet, result, key, __),
|
|
54
54
|
thunkify3(_mapMapSeriesAsync, iterator, f, result),
|
|
55
55
|
))
|
|
56
56
|
}
|
|
57
|
-
result.set(key,
|
|
57
|
+
result.set(key, resultElement)
|
|
58
58
|
iteration = iterator.next()
|
|
59
59
|
}
|
|
60
60
|
return result
|
|
@@ -20,13 +20,13 @@ const objectFilter = function (object, predicate) {
|
|
|
20
20
|
const result = {},
|
|
21
21
|
promises = []
|
|
22
22
|
for (const key in object) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
if (isPromise(
|
|
26
|
-
promises.push(
|
|
23
|
+
const element = object[key],
|
|
24
|
+
shouldIncludeElement = predicate(element, key, object)
|
|
25
|
+
if (isPromise(shouldIncludeElement)) {
|
|
26
|
+
promises.push(shouldIncludeElement.then(
|
|
27
27
|
curry4(objectSetIf, result, key, object[key], __)))
|
|
28
|
-
} else if (
|
|
29
|
-
result[key] =
|
|
28
|
+
} else if (shouldIncludeElement) {
|
|
29
|
+
result[key] = element
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
return promises.length == 0
|
|
@@ -19,7 +19,7 @@ export = objectFlatMap;
|
|
|
19
19
|
* ```
|
|
20
20
|
*
|
|
21
21
|
* @description
|
|
22
|
-
* Apply a flatMapper to each value of an object, assigning all
|
|
22
|
+
* Apply a flatMapper to each value of an object, assigning all elements of all results into a new object.
|
|
23
23
|
*
|
|
24
24
|
* @TODO "deeply copies" after objectFlatten changes to deep assignment
|
|
25
25
|
*/
|
|
@@ -22,7 +22,7 @@ const objectFlatten = require('./objectFlatten')
|
|
|
22
22
|
* ```
|
|
23
23
|
*
|
|
24
24
|
* @description
|
|
25
|
-
* Apply a flatMapper to each value of an object, assigning all
|
|
25
|
+
* Apply a flatMapper to each value of an object, assigning all elements of all results into a new object.
|
|
26
26
|
*
|
|
27
27
|
* @TODO "deeply copies" after objectFlatten changes to deep assignment
|
|
28
28
|
*/
|
|
@@ -37,31 +37,31 @@ const objectFlatten = function (object) {
|
|
|
37
37
|
getResult = () => result
|
|
38
38
|
|
|
39
39
|
for (const key in object) {
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
40
|
+
const element = object[key]
|
|
41
|
+
if (element == null) {
|
|
42
42
|
continue
|
|
43
|
-
} else if (typeof
|
|
44
|
-
for (const
|
|
45
|
-
objectAssign(result,
|
|
43
|
+
} else if (typeof element[symbolIterator] == 'function') {
|
|
44
|
+
for (const monadElement of element) {
|
|
45
|
+
objectAssign(result, monadElement)
|
|
46
46
|
}
|
|
47
|
-
} else if (typeof
|
|
47
|
+
} else if (typeof element[symbolAsyncIterator] == 'function') {
|
|
48
48
|
promises.push(
|
|
49
|
-
asyncIteratorForEach(
|
|
50
|
-
} else if (typeof
|
|
51
|
-
const monadValue =
|
|
49
|
+
asyncIteratorForEach(element[symbolAsyncIterator](), resultAssign))
|
|
50
|
+
} else if (typeof element.chain == 'function') {
|
|
51
|
+
const monadValue = element.chain(identity)
|
|
52
52
|
isPromise(monadValue)
|
|
53
53
|
? promises.push(monadValue.then(resultAssign))
|
|
54
54
|
: objectAssign(result, monadValue)
|
|
55
|
-
} else if (typeof
|
|
56
|
-
const monadValue =
|
|
55
|
+
} else if (typeof element.flatMap == 'function') {
|
|
56
|
+
const monadValue = element.flatMap(identity)
|
|
57
57
|
isPromise(monadValue)
|
|
58
58
|
? promises.push(monadValue.then(resultAssign))
|
|
59
59
|
: resultAssign(monadValue)
|
|
60
|
-
} else if (typeof
|
|
61
|
-
const folded =
|
|
60
|
+
} else if (typeof element.reduce == 'function') {
|
|
61
|
+
const folded = element.reduce(resultAssignReducer, null)
|
|
62
62
|
isPromise(folded) && promises.push(folded)
|
|
63
63
|
} else {
|
|
64
|
-
objectAssign(result,
|
|
64
|
+
objectAssign(result, element)
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
return promises.length == 0
|
package/_internal/objectMap.js
CHANGED
|
@@ -20,11 +20,11 @@ const objectMap = function (object, mapper) {
|
|
|
20
20
|
const result = {}
|
|
21
21
|
let isAsync = false
|
|
22
22
|
for (const key in object) {
|
|
23
|
-
const
|
|
24
|
-
if (isPromise(
|
|
23
|
+
const resultElement = mapper(object[key], key, object)
|
|
24
|
+
if (isPromise(resultElement)) {
|
|
25
25
|
isAsync = true
|
|
26
26
|
}
|
|
27
|
-
result[key] =
|
|
27
|
+
result[key] = resultElement
|
|
28
28
|
}
|
|
29
29
|
return isAsync ? promiseObjectAll(result) : result
|
|
30
30
|
}
|
|
@@ -23,11 +23,11 @@ const objectMapOwn = function (object, mapper) {
|
|
|
23
23
|
let isAsync = false
|
|
24
24
|
for (const key in object) {
|
|
25
25
|
if (hasOwn(object, key)) {
|
|
26
|
-
const
|
|
27
|
-
if (isPromise(
|
|
26
|
+
const resultElement = mapper(object[key])
|
|
27
|
+
if (isPromise(resultElement)) {
|
|
28
28
|
isAsync = true
|
|
29
29
|
}
|
|
30
|
-
result[key] =
|
|
30
|
+
result[key] = resultElement
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
return isAsync ? promiseObjectAll(result) : result
|
|
@@ -27,16 +27,16 @@ const _objectMapPoolAsync = async function (
|
|
|
27
27
|
if (promises.size >= concurrency) {
|
|
28
28
|
await promiseRace(promises)
|
|
29
29
|
}
|
|
30
|
-
const
|
|
31
|
-
if (isPromise(
|
|
32
|
-
result[key] =
|
|
33
|
-
const selfDeletingPromise =
|
|
30
|
+
const resultElement = f(o[key], key, o)
|
|
31
|
+
if (isPromise(resultElement)) {
|
|
32
|
+
result[key] = resultElement
|
|
33
|
+
const selfDeletingPromise = resultElement.then(resolvedValue => {
|
|
34
34
|
promises.delete(selfDeletingPromise)
|
|
35
35
|
result[key] = resolvedValue
|
|
36
36
|
})
|
|
37
37
|
promises.add(selfDeletingPromise)
|
|
38
38
|
} else {
|
|
39
|
-
result[key] =
|
|
39
|
+
result[key] = resultElement
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
if (promises.size > 0) {
|
|
@@ -58,18 +58,18 @@ const objectMapPool = function (o, concurrency, f) {
|
|
|
58
58
|
const doneKeys = {}
|
|
59
59
|
for (const key in o) {
|
|
60
60
|
doneKeys[key] = true
|
|
61
|
-
const
|
|
62
|
-
if (isPromise(
|
|
61
|
+
const resultElement = f(o[key], key, o)
|
|
62
|
+
if (isPromise(resultElement)) {
|
|
63
63
|
const promises = new Set()
|
|
64
|
-
result[key] =
|
|
65
|
-
const selfDeletingPromise =
|
|
64
|
+
result[key] = resultElement
|
|
65
|
+
const selfDeletingPromise = resultElement.then(resolvedValue => {
|
|
66
66
|
promises.delete(selfDeletingPromise)
|
|
67
67
|
result[key] = resolvedValue
|
|
68
68
|
})
|
|
69
69
|
promises.add(selfDeletingPromise)
|
|
70
70
|
return _objectMapPoolAsync(o, concurrency, f, result, doneKeys, promises)
|
|
71
71
|
}
|
|
72
|
-
result[key] =
|
|
72
|
+
result[key] = resultElement
|
|
73
73
|
}
|
|
74
74
|
return result
|
|
75
75
|
}
|
|
@@ -17,11 +17,11 @@ const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
|
|
|
17
17
|
if (key in doneKeys) {
|
|
18
18
|
continue
|
|
19
19
|
}
|
|
20
|
-
let
|
|
21
|
-
if (isPromise(
|
|
22
|
-
|
|
20
|
+
let resultElement = f(object[key])
|
|
21
|
+
if (isPromise(resultElement)) {
|
|
22
|
+
resultElement = await resultElement
|
|
23
23
|
}
|
|
24
|
-
result[key] =
|
|
24
|
+
result[key] = resultElement
|
|
25
25
|
}
|
|
26
26
|
return result
|
|
27
27
|
}
|
|
@@ -35,7 +35,7 @@ const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
|
|
|
35
35
|
* value any,
|
|
36
36
|
* key string,
|
|
37
37
|
* collection Object
|
|
38
|
-
* )=>(
|
|
38
|
+
* )=>(resultElement Promise|any)
|
|
39
39
|
*
|
|
40
40
|
* objectMapSeries(object Object, f ObjectMapper) -> Promise|Object
|
|
41
41
|
* ```
|
|
@@ -48,14 +48,14 @@ const objectMapSeries = function (object, f) {
|
|
|
48
48
|
const doneKeys = {}
|
|
49
49
|
for (const key in object) {
|
|
50
50
|
doneKeys[key] = true
|
|
51
|
-
const
|
|
52
|
-
if (isPromise(
|
|
53
|
-
return
|
|
51
|
+
const resultElement = f(object[key], key, object)
|
|
52
|
+
if (isPromise(resultElement)) {
|
|
53
|
+
return resultElement.then(funcConcat(
|
|
54
54
|
curry3(objectSet, result, key, __),
|
|
55
55
|
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
56
56
|
))
|
|
57
57
|
}
|
|
58
|
-
result[key] =
|
|
58
|
+
result[key] = resultElement
|
|
59
59
|
}
|
|
60
60
|
return result
|
|
61
61
|
}
|
|
@@ -6,7 +6,7 @@ export = objectReduce;
|
|
|
6
6
|
* ```coffeescript [specscript]
|
|
7
7
|
* objectReduce(
|
|
8
8
|
* object Object,
|
|
9
|
-
* reducer (any,
|
|
9
|
+
* reducer (any, element any, key string, object)=>Promise|any,
|
|
10
10
|
* result any,
|
|
11
11
|
* ) -> Promise|result
|
|
12
12
|
* ```
|
|
@@ -10,7 +10,7 @@ const objectKeys = require('./objectKeys')
|
|
|
10
10
|
* ```coffeescript [specscript]
|
|
11
11
|
* objectReduceAsync(
|
|
12
12
|
* object Object,
|
|
13
|
-
* reducer (any,
|
|
13
|
+
* reducer (any, element any, key string, object)=>Promise|any,
|
|
14
14
|
* result any,
|
|
15
15
|
* ) -> Promise<result>
|
|
16
16
|
* ```
|
|
@@ -34,7 +34,7 @@ const objectReduceAsync = async function (object, reducer, result, keys, index)
|
|
|
34
34
|
* ```coffeescript [specscript]
|
|
35
35
|
* objectReduce(
|
|
36
36
|
* object Object,
|
|
37
|
-
* reducer (any,
|
|
37
|
+
* reducer (any, element any, key string, object)=>Promise|any,
|
|
38
38
|
* result any,
|
|
39
39
|
* ) -> Promise|result
|
|
40
40
|
* ```
|
|
@@ -4,7 +4,7 @@ export = reducerAllSync;
|
|
|
4
4
|
*
|
|
5
5
|
* @synopsis
|
|
6
6
|
* ```coffeescript [specscript]
|
|
7
|
-
* reducerAllSync(predicate any=> boolean, result boolean,
|
|
7
|
+
* reducerAllSync(predicate any=> boolean, result boolean, element any) -> boolean
|
|
8
8
|
* ```
|
|
9
9
|
*/
|
|
10
|
-
declare function reducerAllSync(predicate: any, result: any,
|
|
10
|
+
declare function reducerAllSync(predicate: any, result: any, element: any): any;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @synopsis
|
|
5
5
|
* ```coffeescript [specscript]
|
|
6
|
-
* reducerAllSync(predicate any=> boolean, result boolean,
|
|
6
|
+
* reducerAllSync(predicate any=> boolean, result boolean, element any) -> boolean
|
|
7
7
|
* ```
|
|
8
8
|
*/
|
|
9
|
-
const reducerAllSync = (predicate, result,
|
|
9
|
+
const reducerAllSync = (predicate, result, element) => result ? predicate(element) : false
|
|
10
10
|
|
|
11
11
|
module.exports = reducerAllSync
|
|
@@ -7,4 +7,4 @@ export = reducerAnySync;
|
|
|
7
7
|
* reducerAnySync(predicate T=>boolean) -> anyReducer (any, any)=>any
|
|
8
8
|
* ```
|
|
9
9
|
*/
|
|
10
|
-
declare function reducerAnySync(predicate: any): (result: any,
|
|
10
|
+
declare function reducerAnySync(predicate: any): (result: any, element: any) => any;
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* reducerAnySync(predicate T=>boolean) -> anyReducer (any, any)=>any
|
|
7
7
|
* ```
|
|
8
8
|
*/
|
|
9
|
-
const reducerAnySync = predicate => function anyReducer(result,
|
|
10
|
-
return result ? true : predicate(
|
|
9
|
+
const reducerAnySync = predicate => function anyReducer(result, element) {
|
|
10
|
+
return result ? true : predicate(element)
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
module.exports = reducerAnySync
|
|
@@ -12,4 +12,4 @@ export = reducerConcat;
|
|
|
12
12
|
* >(reducerA, reducerB) -> pipedReducer (any, T)=>Promise|any
|
|
13
13
|
* ```
|
|
14
14
|
*/
|
|
15
|
-
declare function reducerConcat(reducerA: any, reducerB: any): (result: any,
|
|
15
|
+
declare function reducerConcat(reducerA: any, reducerB: any): (result: any, element: any) => any;
|
|
@@ -17,11 +17,11 @@ const curry2 = require('./curry2')
|
|
|
17
17
|
*/
|
|
18
18
|
const reducerConcat = (
|
|
19
19
|
reducerA, reducerB,
|
|
20
|
-
) => function pipedReducer(result,
|
|
21
|
-
const intermediate = reducerA(result,
|
|
20
|
+
) => function pipedReducer(result, element) {
|
|
21
|
+
const intermediate = reducerA(result, element)
|
|
22
22
|
return isPromise(intermediate)
|
|
23
|
-
? intermediate.then(curry2(reducerB, __,
|
|
24
|
-
: reducerB(intermediate,
|
|
23
|
+
? intermediate.then(curry2(reducerB, __, element))
|
|
24
|
+
: reducerB(intermediate, element)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
module.exports = reducerConcat
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
*/
|
|
10
10
|
const reducerConcatSync = (
|
|
11
11
|
reducerA, reducerB,
|
|
12
|
-
) => function pipedReducer(result,
|
|
13
|
-
return reducerB(reducerA(result,
|
|
12
|
+
) => function pipedReducer(result, element) {
|
|
13
|
+
return reducerB(reducerA(result, element), element)
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
module.exports = reducerConcatSync
|
|
@@ -6,7 +6,7 @@ export = reducerEvery;
|
|
|
6
6
|
* ```coffeescript [specscript]
|
|
7
7
|
* reducerEvery(
|
|
8
8
|
* predicate any=>boolean,
|
|
9
|
-
* ) -> reducer(result boolean,
|
|
9
|
+
* ) -> reducer(result boolean, element any)=>boolean
|
|
10
10
|
* ```
|
|
11
11
|
*/
|
|
12
|
-
declare function reducerEvery(predicate: any): (result: any,
|
|
12
|
+
declare function reducerEvery(predicate: any): (result: any, element: any) => any;
|
|
@@ -10,14 +10,14 @@ const reducerAllSync = require('./reducerAllSync')
|
|
|
10
10
|
* ```coffeescript [specscript]
|
|
11
11
|
* reducerEvery(
|
|
12
12
|
* predicate any=>boolean,
|
|
13
|
-
* ) -> reducer(result boolean,
|
|
13
|
+
* ) -> reducer(result boolean, element any)=>boolean
|
|
14
14
|
* ```
|
|
15
15
|
*/
|
|
16
|
-
const reducerEvery = predicate => function allReducer(result,
|
|
16
|
+
const reducerEvery = predicate => function allReducer(result, element) {
|
|
17
17
|
return result === false ? false
|
|
18
18
|
: isPromise(result) ? result.then(
|
|
19
|
-
curry3(reducerAllSync, predicate, __,
|
|
20
|
-
: result ? predicate(
|
|
19
|
+
curry3(reducerAllSync, predicate, __, element))
|
|
20
|
+
: result ? predicate(element) : false
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
module.exports = reducerEvery
|
|
@@ -12,8 +12,8 @@ export = reducerFilter;
|
|
|
12
12
|
* ```
|
|
13
13
|
*
|
|
14
14
|
* @description
|
|
15
|
-
* Filter
|
|
15
|
+
* Filter elements from a reducer's operation by predicate. `predicate` may be asynchronous.
|
|
16
16
|
*
|
|
17
17
|
* Note: If the predicate is asynchronous, the implementation of reduce that consumes the filtering reducer must resolve promises
|
|
18
18
|
*/
|
|
19
|
-
declare function reducerFilter(reducer: any, predicate: any): (result: any,
|
|
19
|
+
declare function reducerFilter(reducer: any, predicate: any): (result: any, element: any) => any;
|
|
@@ -18,21 +18,21 @@ const always = require('./always')
|
|
|
18
18
|
* ```
|
|
19
19
|
*
|
|
20
20
|
* @description
|
|
21
|
-
* Filter
|
|
21
|
+
* Filter elements from a reducer's operation by predicate. `predicate` may be asynchronous.
|
|
22
22
|
*
|
|
23
23
|
* Note: If the predicate is asynchronous, the implementation of reduce that consumes the filtering reducer must resolve promises
|
|
24
24
|
*/
|
|
25
25
|
const reducerFilter = (
|
|
26
26
|
reducer, predicate,
|
|
27
|
-
) => function filteringReducer(result,
|
|
28
|
-
const shouldInclude = predicate(
|
|
27
|
+
) => function filteringReducer(result, element) {
|
|
28
|
+
const shouldInclude = predicate(element)
|
|
29
29
|
return isPromise(shouldInclude)
|
|
30
30
|
? shouldInclude.then(curry3(
|
|
31
31
|
thunkConditional,
|
|
32
32
|
__,
|
|
33
|
-
thunkify2(reducer, result,
|
|
33
|
+
thunkify2(reducer, result, element),
|
|
34
34
|
always(result)))
|
|
35
|
-
: shouldInclude ? reducer(result,
|
|
35
|
+
: shouldInclude ? reducer(result, element) : result
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
module.exports = reducerFilter
|
|
@@ -18,15 +18,15 @@ const genericReduce = require('./genericReduce')
|
|
|
18
18
|
* ```
|
|
19
19
|
*
|
|
20
20
|
* @description
|
|
21
|
-
* Create a flattening reducer - a reducer that flattens all
|
|
21
|
+
* Create a flattening reducer - a reducer that flattens all elements of a reducing operation into the result.
|
|
22
22
|
*
|
|
23
23
|
* @previously
|
|
24
24
|
* flatteningTransducer
|
|
25
25
|
*/
|
|
26
26
|
const reducerFlatten = reducer => function flatteningReducer(
|
|
27
|
-
result,
|
|
27
|
+
result, reducerElement,
|
|
28
28
|
) {
|
|
29
|
-
return genericReduce(
|
|
29
|
+
return genericReduce(reducerElement, reducer, result)
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
module.exports = reducerFlatten
|
|
@@ -13,6 +13,6 @@ export = reducerForEach;
|
|
|
13
13
|
* ```
|
|
14
14
|
*
|
|
15
15
|
* @description
|
|
16
|
-
* Create a reducer that additionally executes a callback for each
|
|
16
|
+
* Create a reducer that additionally executes a callback for each element of its reducing operation.
|
|
17
17
|
*/
|
|
18
|
-
declare function reducerForEach(reducer: any, callback: any): (result: any,
|
|
18
|
+
declare function reducerForEach(reducer: any, callback: any): (result: any, element: any) => any;
|
|
@@ -15,16 +15,16 @@ const thunkify2 = require('./thunkify2')
|
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
17
|
* @description
|
|
18
|
-
* Create a reducer that additionally executes a callback for each
|
|
18
|
+
* Create a reducer that additionally executes a callback for each element of its reducing operation.
|
|
19
19
|
*/
|
|
20
20
|
const reducerForEach = (
|
|
21
21
|
reducer, callback,
|
|
22
|
-
) => function executingForEach(result,
|
|
23
|
-
const operation = callback(
|
|
22
|
+
) => function executingForEach(result, element) {
|
|
23
|
+
const operation = callback(element)
|
|
24
24
|
if (isPromise(operation)) {
|
|
25
|
-
return operation.then(thunkify2(reducer, result,
|
|
25
|
+
return operation.then(thunkify2(reducer, result, element))
|
|
26
26
|
}
|
|
27
|
-
return reducer(result,
|
|
27
|
+
return reducer(result, element)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
module.exports = reducerForEach
|
|
@@ -16,4 +16,4 @@ export = reducerMap;
|
|
|
16
16
|
*
|
|
17
17
|
* Note: If the mapper is asynchronous, the implementation of reduce that consumes the mapping reducer must resolve promises
|
|
18
18
|
*/
|
|
19
|
-
declare function reducerMap(reducer: any, mapper: any): (result: any,
|
|
19
|
+
declare function reducerMap(reducer: any, mapper: any): (result: any, reducerElement: any) => any;
|