rubico 2.5.0 → 2.6.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/_internal/arrayMapPool.js +11 -19
- package/_internal/mapMapPool.js +80 -0
- package/_internal/objectMapPool.js +77 -0
- package/_internal/objectMapSeries.js +1 -0
- package/_internal/setMapPool.js +79 -0
- package/_internal/stringMapPool.js +22 -0
- package/all.js +11 -1
- package/and.js +9 -0
- package/assign.js +14 -1
- package/compose.js +8 -0
- package/dist/Transducer.es.js +1 -1
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +1 -1
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +1 -1
- 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 +1 -1
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +1 -1
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +1 -1
- 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 +1 -1
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +1 -1
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +1 -1
- 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 +1 -1
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +1 -1
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +1 -1
- package/dist/filter.es.js +1 -1
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +1 -1
- package/dist/flatMap.es.js +1 -1
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +1 -1
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +1 -1
- package/dist/forEach.es.js +3 -2
- package/dist/forEach.es.min.js +2 -2
- package/dist/forEach.js +3 -2
- package/dist/forEach.min.js +2 -2
- package/dist/forEach.mjs +3 -2
- 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 +221 -44
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +221 -44
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +221 -44
- 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 +1 -1
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +1 -1
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +1 -1
- 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 +1 -1
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +1 -1
- package/dist/rubico.es.js +197 -16
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +197 -16
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +197 -16
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +197 -16
- 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 +1 -1
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +1 -1
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +1 -1
- 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 +38 -1
- package/dist/tap.es.min.js +2 -2
- package/dist/tap.js +38 -1
- package/dist/tap.min.js +2 -2
- package/dist/tap.mjs +38 -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 +1 -1
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +1 -1
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -1
- 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 +1 -1
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +1 -1
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +1 -1
- 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 +1 -1
- package/dist/x/defaultsDeep.es.min.js +1 -1
- package/dist/x/defaultsDeep.js +1 -1
- package/dist/x/defaultsDeep.min.js +1 -1
- package/dist/x/defaultsDeep.mjs +1 -1
- package/dist/x/differenceWith.es.js +1 -1
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +1 -1
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +1 -1
- package/dist/x/filterOut.es.js +1 -1
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +1 -1
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +1 -1
- package/dist/x/find.es.js +1 -1
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -1
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -1
- 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 +1 -1
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +1 -1
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +1 -1
- package/dist/x/groupBy.es.js +1 -1
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +1 -1
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +1 -1
- 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 +1 -1
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +1 -1
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +1 -1
- 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 +221 -44
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +221 -44
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +221 -44
- package/dist/x/prepend.es.js +1 -1
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +1 -1
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +1 -1
- 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 +38 -1
- package/dist/x/trace.es.min.js +2 -2
- package/dist/x/trace.js +38 -1
- package/dist/x/trace.min.js +2 -2
- package/dist/x/trace.mjs +38 -1
- package/dist/x/unionWith.es.js +1 -1
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +1 -1
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +1 -1
- 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 +6 -0
- package/es.js +197 -16
- package/every.js +6 -0
- package/filter.js +9 -0
- package/flatMap.js +7 -0
- package/forEach.js +20 -1
- package/get.js +6 -0
- package/gt.js +6 -0
- package/gte.js +6 -0
- package/index.js +197 -16
- package/lt.js +6 -0
- package/lte.js +6 -0
- package/map.js +118 -45
- package/not.js +8 -0
- package/omit.js +7 -0
- package/or.js +9 -0
- package/package.json +1 -1
- package/pick.js +7 -0
- package/pipe.js +8 -0
- package/reduce.js +8 -0
- package/set.js +6 -0
- package/some.js +6 -0
- package/switchCase.js +12 -0
- package/tap.js +11 -0
- package/transform.js +38 -10
- package/tryCatch.js +14 -0
package/dist/rubico.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -158,6 +158,9 @@ const tap = function (...args) {
|
|
|
158
158
|
if (args.length == 0) {
|
|
159
159
|
return curryArgs2(_tap, __, func)
|
|
160
160
|
}
|
|
161
|
+
if (areAnyValuesPromises(args)) {
|
|
162
|
+
return promiseAll(args).then(curry2(_tap, __, func))
|
|
163
|
+
}
|
|
161
164
|
return _tap(args, func)
|
|
162
165
|
}
|
|
163
166
|
|
|
@@ -701,6 +704,7 @@ const objectMapSeries = function (object, f) {
|
|
|
701
704
|
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
702
705
|
))
|
|
703
706
|
}
|
|
707
|
+
result[key] = resultItem
|
|
704
708
|
}
|
|
705
709
|
return result
|
|
706
710
|
}
|
|
@@ -795,15 +799,14 @@ const tapSync = func => function tapping(...args) {
|
|
|
795
799
|
const promiseRace = Promise.race.bind(Promise)
|
|
796
800
|
|
|
797
801
|
const arrayMapPoolAsync = async function (
|
|
798
|
-
array,
|
|
802
|
+
array, f, concurrencyLimit, result, index, promises,
|
|
799
803
|
) {
|
|
800
804
|
const arrayLength = array.length
|
|
801
805
|
while (++index < arrayLength) {
|
|
802
806
|
if (promises.size >= concurrencyLimit) {
|
|
803
807
|
await promiseRace(promises)
|
|
804
808
|
}
|
|
805
|
-
|
|
806
|
-
const resultItem = mapper(array[index])
|
|
809
|
+
const resultItem = f(array[index])
|
|
807
810
|
if (isPromise(resultItem)) {
|
|
808
811
|
const selfDeletingPromise = resultItem.then(
|
|
809
812
|
tapSync(() => promises.delete(selfDeletingPromise)))
|
|
@@ -816,13 +819,12 @@ const arrayMapPoolAsync = async function (
|
|
|
816
819
|
return promiseAll(result)
|
|
817
820
|
}
|
|
818
821
|
|
|
819
|
-
const arrayMapPool = function (array,
|
|
822
|
+
const arrayMapPool = function (array, concurrency, f) {
|
|
820
823
|
const arrayLength = array.length,
|
|
821
824
|
result = Array(arrayLength)
|
|
822
825
|
let index = -1
|
|
823
826
|
while (++index < arrayLength) {
|
|
824
|
-
|
|
825
|
-
const resultItem = mapper(array[index])
|
|
827
|
+
const resultItem = f(array[index])
|
|
826
828
|
if (isPromise(resultItem)) {
|
|
827
829
|
const promises = new Set(),
|
|
828
830
|
selfDeletingPromise = resultItem.then(
|
|
@@ -830,13 +832,167 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
|
|
|
830
832
|
promises.add(selfDeletingPromise)
|
|
831
833
|
result[index] = selfDeletingPromise
|
|
832
834
|
return arrayMapPoolAsync(
|
|
833
|
-
array,
|
|
835
|
+
array, f, concurrency, result, index, promises)
|
|
834
836
|
}
|
|
835
837
|
result[index] = resultItem
|
|
836
838
|
}
|
|
837
839
|
return result
|
|
838
840
|
}
|
|
839
841
|
|
|
842
|
+
const stringMapPool = function (s, concurrency, f) {
|
|
843
|
+
const result = arrayMapPool(s, concurrency, f)
|
|
844
|
+
return isPromise(result)
|
|
845
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
846
|
+
: result.join('')
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
const _setMapPoolAsync = async function (
|
|
850
|
+
s, iterator, concurrency, f, result, promises,
|
|
851
|
+
) {
|
|
852
|
+
let iteration = iterator.next()
|
|
853
|
+
while (!iteration.done) {
|
|
854
|
+
if (promises.size >= concurrency) {
|
|
855
|
+
await promiseRace(promises)
|
|
856
|
+
}
|
|
857
|
+
const resultItem = f(iteration.value, iteration.value, s)
|
|
858
|
+
if (isPromise(resultItem)) {
|
|
859
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
860
|
+
promises.delete(selfDeletingPromise)
|
|
861
|
+
result.add(resolvedValue)
|
|
862
|
+
})
|
|
863
|
+
promises.add(selfDeletingPromise)
|
|
864
|
+
} else {
|
|
865
|
+
result.add(resultItem)
|
|
866
|
+
}
|
|
867
|
+
iteration = iterator.next()
|
|
868
|
+
}
|
|
869
|
+
if (promises.size > 0) {
|
|
870
|
+
await promiseAll(promises)
|
|
871
|
+
}
|
|
872
|
+
return result
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
const setMapPool = function (s, concurrency, f) {
|
|
876
|
+
const result = new Set()
|
|
877
|
+
const iterator = s[symbolIterator]()
|
|
878
|
+
let iteration = iterator.next()
|
|
879
|
+
while (!iteration.done) {
|
|
880
|
+
const resultItem = f(iteration.value, iteration.value, s)
|
|
881
|
+
if (isPromise(resultItem)) {
|
|
882
|
+
const promises = new Set()
|
|
883
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
884
|
+
promises.delete(selfDeletingPromise)
|
|
885
|
+
result.add(resolvedValue)
|
|
886
|
+
})
|
|
887
|
+
promises.add(selfDeletingPromise)
|
|
888
|
+
return _setMapPoolAsync(s, iterator, concurrency, f, result, promises)
|
|
889
|
+
}
|
|
890
|
+
result.add(resultItem)
|
|
891
|
+
iteration = iterator.next()
|
|
892
|
+
}
|
|
893
|
+
return result
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
const _mapMapPoolAsync = async function (
|
|
897
|
+
m, iterator, concurrency, f, result, promises,
|
|
898
|
+
) {
|
|
899
|
+
let iteration = iterator.next()
|
|
900
|
+
while (!iteration.done) {
|
|
901
|
+
if (promises.size >= concurrency) {
|
|
902
|
+
await promiseRace(promises)
|
|
903
|
+
}
|
|
904
|
+
const key = iteration.value[0]
|
|
905
|
+
const resultItem = f(iteration.value[1], key, m)
|
|
906
|
+
if (isPromise(resultItem)) {
|
|
907
|
+
result.set(key, resultItem)
|
|
908
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
909
|
+
promises.delete(selfDeletingPromise)
|
|
910
|
+
result.set(key, resolvedValue)
|
|
911
|
+
})
|
|
912
|
+
promises.add(selfDeletingPromise)
|
|
913
|
+
} else {
|
|
914
|
+
result.set(key, resultItem)
|
|
915
|
+
}
|
|
916
|
+
iteration = iterator.next()
|
|
917
|
+
}
|
|
918
|
+
if (promises.size > 0) {
|
|
919
|
+
await promiseAll(promises)
|
|
920
|
+
}
|
|
921
|
+
return result
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
const mapMapPool = function (m, concurrency, f) {
|
|
925
|
+
const result = new Map()
|
|
926
|
+
const iterator = m[symbolIterator]()
|
|
927
|
+
let iteration = iterator.next()
|
|
928
|
+
while (!iteration.done) {
|
|
929
|
+
const key = iteration.value[0]
|
|
930
|
+
const resultItem = f(iteration.value[1], key, m)
|
|
931
|
+
if (isPromise(resultItem)) {
|
|
932
|
+
const promises = new Set()
|
|
933
|
+
result.set(key, resultItem)
|
|
934
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
935
|
+
promises.delete(selfDeletingPromise)
|
|
936
|
+
result.set(key, resolvedValue)
|
|
937
|
+
})
|
|
938
|
+
promises.add(selfDeletingPromise)
|
|
939
|
+
return _mapMapPoolAsync(m, iterator, concurrency, f, result, promises)
|
|
940
|
+
}
|
|
941
|
+
result.set(key, resultItem)
|
|
942
|
+
iteration = iterator.next()
|
|
943
|
+
}
|
|
944
|
+
return result
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
const _objectMapPoolAsync = async function (
|
|
948
|
+
o, concurrency, f, result, doneKeys, promises,
|
|
949
|
+
) {
|
|
950
|
+
for (const key in o) {
|
|
951
|
+
if (key in doneKeys) {
|
|
952
|
+
continue
|
|
953
|
+
}
|
|
954
|
+
if (promises.size >= concurrency) {
|
|
955
|
+
await promiseRace(promises)
|
|
956
|
+
}
|
|
957
|
+
const resultItem = f(o[key], key, o)
|
|
958
|
+
if (isPromise(resultItem)) {
|
|
959
|
+
result[key] = resultItem
|
|
960
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
961
|
+
promises.delete(selfDeletingPromise)
|
|
962
|
+
result[key] = resolvedValue
|
|
963
|
+
})
|
|
964
|
+
promises.add(selfDeletingPromise)
|
|
965
|
+
} else {
|
|
966
|
+
result[key] = resultItem
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
if (promises.size > 0) {
|
|
970
|
+
await promiseAll(promises)
|
|
971
|
+
}
|
|
972
|
+
return result
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
const objectMapPool = function (o, concurrency, f) {
|
|
976
|
+
const result = {}
|
|
977
|
+
const doneKeys = {}
|
|
978
|
+
for (const key in o) {
|
|
979
|
+
doneKeys[key] = true
|
|
980
|
+
const resultItem = f(o[key], key, o)
|
|
981
|
+
if (isPromise(resultItem)) {
|
|
982
|
+
const promises = new Set()
|
|
983
|
+
result[key] = resultItem
|
|
984
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
985
|
+
promises.delete(selfDeletingPromise)
|
|
986
|
+
result[key] = resolvedValue
|
|
987
|
+
})
|
|
988
|
+
promises.add(selfDeletingPromise)
|
|
989
|
+
return _objectMapPoolAsync(o, concurrency, f, result, doneKeys, promises)
|
|
990
|
+
}
|
|
991
|
+
result[key] = resultItem
|
|
992
|
+
}
|
|
993
|
+
return result
|
|
994
|
+
}
|
|
995
|
+
|
|
840
996
|
const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
|
|
841
997
|
const argsLength = args.length,
|
|
842
998
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -972,7 +1128,7 @@ const _map = function (value, mapper) {
|
|
|
972
1128
|
}
|
|
973
1129
|
|
|
974
1130
|
const map = function (arg0, arg1) {
|
|
975
|
-
if (
|
|
1131
|
+
if (arg1 == null) {
|
|
976
1132
|
return curry2(_map, __, arg0)
|
|
977
1133
|
}
|
|
978
1134
|
return isPromise(arg0)
|
|
@@ -995,7 +1151,7 @@ const _mapEntries = (value, mapper) => {
|
|
|
995
1151
|
}
|
|
996
1152
|
|
|
997
1153
|
map.entries = function mapEntries(arg0, arg1) {
|
|
998
|
-
if (
|
|
1154
|
+
if (arg1 == null) {
|
|
999
1155
|
return curry2(_mapEntries, __, arg0)
|
|
1000
1156
|
}
|
|
1001
1157
|
return isPromise(arg0)
|
|
@@ -1027,7 +1183,7 @@ const _mapSeries = function (collection, f) {
|
|
|
1027
1183
|
}
|
|
1028
1184
|
|
|
1029
1185
|
map.series = function mapSeries(arg0, arg1) {
|
|
1030
|
-
if (
|
|
1186
|
+
if (arg1 == null) {
|
|
1031
1187
|
return curry2(_mapSeries, __, arg0)
|
|
1032
1188
|
}
|
|
1033
1189
|
return isPromise(arg0)
|
|
@@ -1035,11 +1191,35 @@ map.series = function mapSeries(arg0, arg1) {
|
|
|
1035
1191
|
: _mapSeries(arg0, arg1)
|
|
1036
1192
|
}
|
|
1037
1193
|
|
|
1038
|
-
|
|
1039
|
-
if (isArray(
|
|
1040
|
-
return arrayMapPool(
|
|
1194
|
+
const _mapPool = function (collection, concurrency, f) {
|
|
1195
|
+
if (isArray(collection)) {
|
|
1196
|
+
return arrayMapPool(collection, concurrency, f)
|
|
1197
|
+
}
|
|
1198
|
+
if (collection == null) {
|
|
1199
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
1041
1200
|
}
|
|
1042
|
-
|
|
1201
|
+
if (typeof collection == 'string' || collection.constructor == String) {
|
|
1202
|
+
return stringMapPool(collection, concurrency, f)
|
|
1203
|
+
}
|
|
1204
|
+
if (collection.constructor == Set) {
|
|
1205
|
+
return setMapPool(collection, concurrency, f)
|
|
1206
|
+
}
|
|
1207
|
+
if (collection.constructor == Map) {
|
|
1208
|
+
return mapMapPool(collection, concurrency, f)
|
|
1209
|
+
}
|
|
1210
|
+
if (collection.constructor == Object) {
|
|
1211
|
+
return objectMapPool(collection, concurrency, f)
|
|
1212
|
+
}
|
|
1213
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
map.pool = function mapPool(arg0, arg1, arg2) {
|
|
1217
|
+
if (arg2 == null) {
|
|
1218
|
+
return curry3(_mapPool, __, arg0, arg1)
|
|
1219
|
+
}
|
|
1220
|
+
return isPromise(arg0)
|
|
1221
|
+
? arg0.then(curry3(_mapPool, __, arg1, arg2))
|
|
1222
|
+
: _mapPool(arg0, arg1, arg2)
|
|
1043
1223
|
}
|
|
1044
1224
|
|
|
1045
1225
|
const FilteringIterator = (iterator, predicate) => ({
|
|
@@ -2146,7 +2326,8 @@ const _forEach = function (collection, callback) {
|
|
|
2146
2326
|
return collection
|
|
2147
2327
|
}
|
|
2148
2328
|
if (typeof collection.forEach == 'function') {
|
|
2149
|
-
|
|
2329
|
+
collection.forEach(callback)
|
|
2330
|
+
return collection
|
|
2150
2331
|
}
|
|
2151
2332
|
if (typeof collection[symbolIterator] == 'function') {
|
|
2152
2333
|
return iteratorForEach(collection[symbolIterator](), callback)
|
package/dist/set.es.js
CHANGED
package/dist/set.es.min.js
CHANGED
package/dist/set.js
CHANGED
package/dist/set.min.js
CHANGED
package/dist/set.mjs
CHANGED
package/dist/some.es.js
CHANGED
package/dist/some.es.min.js
CHANGED
package/dist/some.js
CHANGED
package/dist/some.min.js
CHANGED
package/dist/some.mjs
CHANGED
package/dist/switchCase.es.js
CHANGED
package/dist/switchCase.js
CHANGED
package/dist/switchCase.min.js
CHANGED
package/dist/switchCase.mjs
CHANGED
package/dist/tap.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -19,6 +19,26 @@ const thunkConditional = (
|
|
|
19
19
|
|
|
20
20
|
const __ = Symbol.for('placeholder')
|
|
21
21
|
|
|
22
|
+
// argument resolver for curry2
|
|
23
|
+
const curry2ResolveArg0 = (
|
|
24
|
+
baseFunc, arg1,
|
|
25
|
+
) => function arg0Resolver(arg0) {
|
|
26
|
+
return baseFunc(arg0, arg1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// argument resolver for curry2
|
|
30
|
+
const curry2ResolveArg1 = (
|
|
31
|
+
baseFunc, arg0,
|
|
32
|
+
) => function arg1Resolver(arg1) {
|
|
33
|
+
return baseFunc(arg0, arg1)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
37
|
+
return arg0 == __
|
|
38
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
39
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
40
|
+
}
|
|
41
|
+
|
|
22
42
|
// argument resolver for curry3
|
|
23
43
|
const curry3ResolveArg0 = (
|
|
24
44
|
baseFunc, arg1, arg2,
|
|
@@ -71,6 +91,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
71
91
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
72
92
|
}
|
|
73
93
|
|
|
94
|
+
const areAnyValuesPromises = function (values) {
|
|
95
|
+
const length = values.length
|
|
96
|
+
let index = -1
|
|
97
|
+
while (++index < length) {
|
|
98
|
+
const value = values[index]
|
|
99
|
+
if (isPromise(value)) {
|
|
100
|
+
return true
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return false
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
107
|
+
|
|
74
108
|
// _tap(args Array, func function) -> Promise|any
|
|
75
109
|
const _tap = function (args, func) {
|
|
76
110
|
const result = args[0],
|
|
@@ -83,6 +117,9 @@ const tap = function (...args) {
|
|
|
83
117
|
if (args.length == 0) {
|
|
84
118
|
return curryArgs2(_tap, __, func)
|
|
85
119
|
}
|
|
120
|
+
if (areAnyValuesPromises(args)) {
|
|
121
|
+
return promiseAll(args).then(curry2(_tap, __, func))
|
|
122
|
+
}
|
|
86
123
|
return _tap(args, func)
|
|
87
124
|
}
|
|
88
125
|
|
package/dist/tap.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,n)=>function(e){return r(e,n)},curry2ResolveArg1=(r,n)=>function(e){return r(n,e)},curry2=function(r,n,e){return n==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,n)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},promiseAll=Promise.all.bind(Promise),_tap=function(r,n){const e=r[0],t=n(...r);return isPromise(t)?t.then(always(e)):e},tap=function(...r){const n=r.pop();return 0==r.length?curryArgs2(_tap,__,n):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_tap,__,n)):_tap(r,n)};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then(curry3(thunkConditional,__,thunkifyArgs(tap(n),e),always(e[0])));if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
|
package/dist/tap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -25,6 +25,26 @@ const thunkConditional = (
|
|
|
25
25
|
|
|
26
26
|
const __ = Symbol.for('placeholder')
|
|
27
27
|
|
|
28
|
+
// argument resolver for curry2
|
|
29
|
+
const curry2ResolveArg0 = (
|
|
30
|
+
baseFunc, arg1,
|
|
31
|
+
) => function arg0Resolver(arg0) {
|
|
32
|
+
return baseFunc(arg0, arg1)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// argument resolver for curry2
|
|
36
|
+
const curry2ResolveArg1 = (
|
|
37
|
+
baseFunc, arg0,
|
|
38
|
+
) => function arg1Resolver(arg1) {
|
|
39
|
+
return baseFunc(arg0, arg1)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
43
|
+
return arg0 == __
|
|
44
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
45
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
46
|
+
}
|
|
47
|
+
|
|
28
48
|
// argument resolver for curry3
|
|
29
49
|
const curry3ResolveArg0 = (
|
|
30
50
|
baseFunc, arg1, arg2,
|
|
@@ -77,6 +97,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
77
97
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
78
98
|
}
|
|
79
99
|
|
|
100
|
+
const areAnyValuesPromises = function (values) {
|
|
101
|
+
const length = values.length
|
|
102
|
+
let index = -1
|
|
103
|
+
while (++index < length) {
|
|
104
|
+
const value = values[index]
|
|
105
|
+
if (isPromise(value)) {
|
|
106
|
+
return true
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return false
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
113
|
+
|
|
80
114
|
// _tap(args Array, func function) -> Promise|any
|
|
81
115
|
const _tap = function (args, func) {
|
|
82
116
|
const result = args[0],
|
|
@@ -89,6 +123,9 @@ const tap = function (...args) {
|
|
|
89
123
|
if (args.length == 0) {
|
|
90
124
|
return curryArgs2(_tap, __, func)
|
|
91
125
|
}
|
|
126
|
+
if (areAnyValuesPromises(args)) {
|
|
127
|
+
return promiseAll(args).then(curry2(_tap, __, func))
|
|
128
|
+
}
|
|
92
129
|
return _tap(args, func)
|
|
93
130
|
}
|
|
94
131
|
|
package/dist/tap.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 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.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},r=(n,t,r)=>n?t():r(),e=Symbol.for("placeholder"),o=Promise.all.bind(Promise),u=function(r,e){const o=r[0],u=e(...r);return n(u)?u.then(t(o)):o},i=function(...t){const r=t.pop();return 0==t.length?(i=u,c=r,(f=e)==e?((n,t)=>function(...r){return n(r,t)})(i,c):((n,t)=>function(...r){return n(t,r)})(i,f)):function(t){const r=t.length;let e=-1;for(;++e<r;){const r=t[e];if(n(r))return!0}return!1}(t)?o(t).then(function(n,t,r){return t==e?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)}(u,e,r)):u(t,r);var i,f,c};return i.if=(o,u)=>function(...f){const c=o(...f);if(n(c))return c.then((l=r,s=e,h=((n,t)=>function(){return n(...t)})(i(u),f),p=t(f[0]),s==e?((n,t,r)=>function(e){return n(e,t,r)})(l,h,p):h==e?((n,t,r)=>function(e){return n(t,e,r)})(l,s,p):((n,t,r)=>function(e){return n(t,r,e)})(l,s,h)));var l,s,h,p;if(c){const r=u(...f);if(n(r))return r.then(t(f[0]))}return f[0]},i}());
|
package/dist/tap.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -19,6 +19,26 @@ const thunkConditional = (
|
|
|
19
19
|
|
|
20
20
|
const __ = Symbol.for('placeholder')
|
|
21
21
|
|
|
22
|
+
// argument resolver for curry2
|
|
23
|
+
const curry2ResolveArg0 = (
|
|
24
|
+
baseFunc, arg1,
|
|
25
|
+
) => function arg0Resolver(arg0) {
|
|
26
|
+
return baseFunc(arg0, arg1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// argument resolver for curry2
|
|
30
|
+
const curry2ResolveArg1 = (
|
|
31
|
+
baseFunc, arg0,
|
|
32
|
+
) => function arg1Resolver(arg1) {
|
|
33
|
+
return baseFunc(arg0, arg1)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
37
|
+
return arg0 == __
|
|
38
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
39
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
40
|
+
}
|
|
41
|
+
|
|
22
42
|
// argument resolver for curry3
|
|
23
43
|
const curry3ResolveArg0 = (
|
|
24
44
|
baseFunc, arg1, arg2,
|
|
@@ -71,6 +91,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
71
91
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
72
92
|
}
|
|
73
93
|
|
|
94
|
+
const areAnyValuesPromises = function (values) {
|
|
95
|
+
const length = values.length
|
|
96
|
+
let index = -1
|
|
97
|
+
while (++index < length) {
|
|
98
|
+
const value = values[index]
|
|
99
|
+
if (isPromise(value)) {
|
|
100
|
+
return true
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return false
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
107
|
+
|
|
74
108
|
// _tap(args Array, func function) -> Promise|any
|
|
75
109
|
const _tap = function (args, func) {
|
|
76
110
|
const result = args[0],
|
|
@@ -83,6 +117,9 @@ const tap = function (...args) {
|
|
|
83
117
|
if (args.length == 0) {
|
|
84
118
|
return curryArgs2(_tap, __, func)
|
|
85
119
|
}
|
|
120
|
+
if (areAnyValuesPromises(args)) {
|
|
121
|
+
return promiseAll(args).then(curry2(_tap, __, func))
|
|
122
|
+
}
|
|
86
123
|
return _tap(args, func)
|
|
87
124
|
}
|
|
88
125
|
|
package/dist/thunkify.es.js
CHANGED
package/dist/thunkify.es.min.js
CHANGED
package/dist/thunkify.js
CHANGED
package/dist/thunkify.min.js
CHANGED