rubico 2.5.0 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_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 +259 -60
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +259 -60
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +259 -60
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +259 -60
- 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 +100 -14
- package/dist/tap.es.min.js +2 -2
- package/dist/tap.js +100 -14
- package/dist/tap.min.js +2 -2
- package/dist/tap.mjs +100 -14
- 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 +100 -14
- package/dist/x/trace.es.min.js +2 -2
- package/dist/x/trace.js +100 -14
- package/dist/x/trace.min.js +2 -2
- package/dist/x/trace.mjs +100 -14
- 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 +259 -60
- 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 +259 -60
- 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 +75 -26
- package/transform.js +38 -10
- package/tryCatch.js +14 -0
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
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.
|
|
@@ -152,29 +152,67 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
152
152
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
-
//
|
|
156
|
-
const
|
|
155
|
+
// argument resolver for curryArgs3
|
|
156
|
+
const curryArgs3ResolveArgs0 = (
|
|
157
|
+
baseFunc, arg1, arg2,
|
|
158
|
+
) => function args0Resolver(...args) {
|
|
159
|
+
return baseFunc(args, arg1, arg2)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// argument resolver for curryArgs3
|
|
163
|
+
const curryArgs3ResolveArgs1 = (
|
|
164
|
+
baseFunc, arg0, arg2,
|
|
165
|
+
) => function arg1Resolver(...args) {
|
|
166
|
+
return baseFunc(arg0, args, arg2)
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// argument resolver for curryArgs3
|
|
170
|
+
const curryArgs3ResolveArgs2 = (
|
|
171
|
+
baseFunc, arg0, arg1,
|
|
172
|
+
) => function arg2Resolver(...args) {
|
|
173
|
+
return baseFunc(arg0, arg1, args)
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
177
|
+
if (arg0 == __) {
|
|
178
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
179
|
+
}
|
|
180
|
+
if (arg1 == __) {
|
|
181
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
182
|
+
}
|
|
183
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// _tap(args Array, f function) -> Promise|any
|
|
187
|
+
const _tap = function (args, f) {
|
|
157
188
|
const result = args[0],
|
|
158
|
-
call =
|
|
189
|
+
call = f(...args)
|
|
159
190
|
return isPromise(call) ? call.then(always(result)) : result
|
|
160
191
|
}
|
|
161
192
|
|
|
162
193
|
const tap = function (...args) {
|
|
163
|
-
const
|
|
194
|
+
const f = args.pop()
|
|
164
195
|
if (args.length == 0) {
|
|
165
|
-
return curryArgs2(_tap, __,
|
|
196
|
+
return curryArgs2(_tap, __, f)
|
|
197
|
+
}
|
|
198
|
+
if (areAnyValuesPromises(args)) {
|
|
199
|
+
return promiseAll(args).then(curry2(_tap, __, f))
|
|
166
200
|
}
|
|
167
|
-
return _tap(args,
|
|
201
|
+
return _tap(args, f)
|
|
168
202
|
}
|
|
169
203
|
|
|
170
|
-
|
|
171
|
-
const
|
|
172
|
-
if (isPromise(
|
|
173
|
-
return
|
|
174
|
-
thunkConditional,
|
|
204
|
+
const _tapIf = function (predicate, f, args) {
|
|
205
|
+
const b = predicate(...args)
|
|
206
|
+
if (isPromise(b)) {
|
|
207
|
+
return b.then(curry3(
|
|
208
|
+
thunkConditional,
|
|
209
|
+
__,
|
|
210
|
+
thunkifyArgs(tap(f), args),
|
|
211
|
+
always(args[0]),
|
|
212
|
+
))
|
|
175
213
|
}
|
|
176
|
-
if (
|
|
177
|
-
const execution =
|
|
214
|
+
if (b) {
|
|
215
|
+
const execution = f(...args)
|
|
178
216
|
if (isPromise(execution)) {
|
|
179
217
|
return execution.then(always(args[0]))
|
|
180
218
|
}
|
|
@@ -182,6 +220,20 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
182
220
|
return args[0]
|
|
183
221
|
}
|
|
184
222
|
|
|
223
|
+
tap.if = function (...args) {
|
|
224
|
+
if (args.length == 2) {
|
|
225
|
+
return curryArgs3(_tapIf, args[0], args[1], __)
|
|
226
|
+
}
|
|
227
|
+
const argsLength = args.length
|
|
228
|
+
const f = args[argsLength - 1]
|
|
229
|
+
const predicate = args[argsLength - 2]
|
|
230
|
+
const argValues = args.slice(0, -2)
|
|
231
|
+
if (areAnyValuesPromises(argValues)) {
|
|
232
|
+
return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
|
|
233
|
+
}
|
|
234
|
+
return _tapIf(predicate, f, args)
|
|
235
|
+
}
|
|
236
|
+
|
|
185
237
|
const isArray = Array.isArray
|
|
186
238
|
|
|
187
239
|
const functionArrayAll = function (funcs, args) {
|
|
@@ -448,37 +500,6 @@ const nonfunctionsConditional = function (array, index) {
|
|
|
448
500
|
return array[index]
|
|
449
501
|
}
|
|
450
502
|
|
|
451
|
-
// argument resolver for curryArgs3
|
|
452
|
-
const curryArgs3ResolveArgs0 = (
|
|
453
|
-
baseFunc, arg1, arg2,
|
|
454
|
-
) => function args0Resolver(...args) {
|
|
455
|
-
return baseFunc(args, arg1, arg2)
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
// argument resolver for curryArgs3
|
|
459
|
-
const curryArgs3ResolveArgs1 = (
|
|
460
|
-
baseFunc, arg0, arg2,
|
|
461
|
-
) => function arg1Resolver(...args) {
|
|
462
|
-
return baseFunc(arg0, args, arg2)
|
|
463
|
-
}
|
|
464
|
-
|
|
465
|
-
// argument resolver for curryArgs3
|
|
466
|
-
const curryArgs3ResolveArgs2 = (
|
|
467
|
-
baseFunc, arg0, arg1,
|
|
468
|
-
) => function arg2Resolver(...args) {
|
|
469
|
-
return baseFunc(arg0, arg1, args)
|
|
470
|
-
}
|
|
471
|
-
|
|
472
|
-
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
473
|
-
if (arg0 == __) {
|
|
474
|
-
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
475
|
-
}
|
|
476
|
-
if (arg1 == __) {
|
|
477
|
-
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
478
|
-
}
|
|
479
|
-
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
480
|
-
}
|
|
481
|
-
|
|
482
503
|
const switchCase = (...args) => {
|
|
483
504
|
const values = args.pop()
|
|
484
505
|
if (areAllValuesNonfunctions(values)) {
|
|
@@ -707,6 +728,7 @@ const objectMapSeries = function (object, f) {
|
|
|
707
728
|
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
708
729
|
))
|
|
709
730
|
}
|
|
731
|
+
result[key] = resultItem
|
|
710
732
|
}
|
|
711
733
|
return result
|
|
712
734
|
}
|
|
@@ -801,15 +823,14 @@ const tapSync = func => function tapping(...args) {
|
|
|
801
823
|
const promiseRace = Promise.race.bind(Promise)
|
|
802
824
|
|
|
803
825
|
const arrayMapPoolAsync = async function (
|
|
804
|
-
array,
|
|
826
|
+
array, f, concurrencyLimit, result, index, promises,
|
|
805
827
|
) {
|
|
806
828
|
const arrayLength = array.length
|
|
807
829
|
while (++index < arrayLength) {
|
|
808
830
|
if (promises.size >= concurrencyLimit) {
|
|
809
831
|
await promiseRace(promises)
|
|
810
832
|
}
|
|
811
|
-
|
|
812
|
-
const resultItem = mapper(array[index])
|
|
833
|
+
const resultItem = f(array[index])
|
|
813
834
|
if (isPromise(resultItem)) {
|
|
814
835
|
const selfDeletingPromise = resultItem.then(
|
|
815
836
|
tapSync(() => promises.delete(selfDeletingPromise)))
|
|
@@ -822,13 +843,12 @@ const arrayMapPoolAsync = async function (
|
|
|
822
843
|
return promiseAll(result)
|
|
823
844
|
}
|
|
824
845
|
|
|
825
|
-
const arrayMapPool = function (array,
|
|
846
|
+
const arrayMapPool = function (array, concurrency, f) {
|
|
826
847
|
const arrayLength = array.length,
|
|
827
848
|
result = Array(arrayLength)
|
|
828
849
|
let index = -1
|
|
829
850
|
while (++index < arrayLength) {
|
|
830
|
-
|
|
831
|
-
const resultItem = mapper(array[index])
|
|
851
|
+
const resultItem = f(array[index])
|
|
832
852
|
if (isPromise(resultItem)) {
|
|
833
853
|
const promises = new Set(),
|
|
834
854
|
selfDeletingPromise = resultItem.then(
|
|
@@ -836,13 +856,167 @@ const arrayMapPool = function (array, mapper, concurrentLimit) {
|
|
|
836
856
|
promises.add(selfDeletingPromise)
|
|
837
857
|
result[index] = selfDeletingPromise
|
|
838
858
|
return arrayMapPoolAsync(
|
|
839
|
-
array,
|
|
859
|
+
array, f, concurrency, result, index, promises)
|
|
840
860
|
}
|
|
841
861
|
result[index] = resultItem
|
|
842
862
|
}
|
|
843
863
|
return result
|
|
844
864
|
}
|
|
845
865
|
|
|
866
|
+
const stringMapPool = function (s, concurrency, f) {
|
|
867
|
+
const result = arrayMapPool(s, concurrency, f)
|
|
868
|
+
return isPromise(result)
|
|
869
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
870
|
+
: result.join('')
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
const _setMapPoolAsync = async function (
|
|
874
|
+
s, iterator, concurrency, f, result, promises,
|
|
875
|
+
) {
|
|
876
|
+
let iteration = iterator.next()
|
|
877
|
+
while (!iteration.done) {
|
|
878
|
+
if (promises.size >= concurrency) {
|
|
879
|
+
await promiseRace(promises)
|
|
880
|
+
}
|
|
881
|
+
const resultItem = f(iteration.value, iteration.value, s)
|
|
882
|
+
if (isPromise(resultItem)) {
|
|
883
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
884
|
+
promises.delete(selfDeletingPromise)
|
|
885
|
+
result.add(resolvedValue)
|
|
886
|
+
})
|
|
887
|
+
promises.add(selfDeletingPromise)
|
|
888
|
+
} else {
|
|
889
|
+
result.add(resultItem)
|
|
890
|
+
}
|
|
891
|
+
iteration = iterator.next()
|
|
892
|
+
}
|
|
893
|
+
if (promises.size > 0) {
|
|
894
|
+
await promiseAll(promises)
|
|
895
|
+
}
|
|
896
|
+
return result
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
const setMapPool = function (s, concurrency, f) {
|
|
900
|
+
const result = new Set()
|
|
901
|
+
const iterator = s[symbolIterator]()
|
|
902
|
+
let iteration = iterator.next()
|
|
903
|
+
while (!iteration.done) {
|
|
904
|
+
const resultItem = f(iteration.value, iteration.value, s)
|
|
905
|
+
if (isPromise(resultItem)) {
|
|
906
|
+
const promises = new Set()
|
|
907
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
908
|
+
promises.delete(selfDeletingPromise)
|
|
909
|
+
result.add(resolvedValue)
|
|
910
|
+
})
|
|
911
|
+
promises.add(selfDeletingPromise)
|
|
912
|
+
return _setMapPoolAsync(s, iterator, concurrency, f, result, promises)
|
|
913
|
+
}
|
|
914
|
+
result.add(resultItem)
|
|
915
|
+
iteration = iterator.next()
|
|
916
|
+
}
|
|
917
|
+
return result
|
|
918
|
+
}
|
|
919
|
+
|
|
920
|
+
const _mapMapPoolAsync = async function (
|
|
921
|
+
m, iterator, concurrency, f, result, promises,
|
|
922
|
+
) {
|
|
923
|
+
let iteration = iterator.next()
|
|
924
|
+
while (!iteration.done) {
|
|
925
|
+
if (promises.size >= concurrency) {
|
|
926
|
+
await promiseRace(promises)
|
|
927
|
+
}
|
|
928
|
+
const key = iteration.value[0]
|
|
929
|
+
const resultItem = f(iteration.value[1], key, m)
|
|
930
|
+
if (isPromise(resultItem)) {
|
|
931
|
+
result.set(key, resultItem)
|
|
932
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
933
|
+
promises.delete(selfDeletingPromise)
|
|
934
|
+
result.set(key, resolvedValue)
|
|
935
|
+
})
|
|
936
|
+
promises.add(selfDeletingPromise)
|
|
937
|
+
} else {
|
|
938
|
+
result.set(key, resultItem)
|
|
939
|
+
}
|
|
940
|
+
iteration = iterator.next()
|
|
941
|
+
}
|
|
942
|
+
if (promises.size > 0) {
|
|
943
|
+
await promiseAll(promises)
|
|
944
|
+
}
|
|
945
|
+
return result
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
const mapMapPool = function (m, concurrency, f) {
|
|
949
|
+
const result = new Map()
|
|
950
|
+
const iterator = m[symbolIterator]()
|
|
951
|
+
let iteration = iterator.next()
|
|
952
|
+
while (!iteration.done) {
|
|
953
|
+
const key = iteration.value[0]
|
|
954
|
+
const resultItem = f(iteration.value[1], key, m)
|
|
955
|
+
if (isPromise(resultItem)) {
|
|
956
|
+
const promises = new Set()
|
|
957
|
+
result.set(key, resultItem)
|
|
958
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
959
|
+
promises.delete(selfDeletingPromise)
|
|
960
|
+
result.set(key, resolvedValue)
|
|
961
|
+
})
|
|
962
|
+
promises.add(selfDeletingPromise)
|
|
963
|
+
return _mapMapPoolAsync(m, iterator, concurrency, f, result, promises)
|
|
964
|
+
}
|
|
965
|
+
result.set(key, resultItem)
|
|
966
|
+
iteration = iterator.next()
|
|
967
|
+
}
|
|
968
|
+
return result
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
const _objectMapPoolAsync = async function (
|
|
972
|
+
o, concurrency, f, result, doneKeys, promises,
|
|
973
|
+
) {
|
|
974
|
+
for (const key in o) {
|
|
975
|
+
if (key in doneKeys) {
|
|
976
|
+
continue
|
|
977
|
+
}
|
|
978
|
+
if (promises.size >= concurrency) {
|
|
979
|
+
await promiseRace(promises)
|
|
980
|
+
}
|
|
981
|
+
const resultItem = f(o[key], key, o)
|
|
982
|
+
if (isPromise(resultItem)) {
|
|
983
|
+
result[key] = resultItem
|
|
984
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
985
|
+
promises.delete(selfDeletingPromise)
|
|
986
|
+
result[key] = resolvedValue
|
|
987
|
+
})
|
|
988
|
+
promises.add(selfDeletingPromise)
|
|
989
|
+
} else {
|
|
990
|
+
result[key] = resultItem
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
if (promises.size > 0) {
|
|
994
|
+
await promiseAll(promises)
|
|
995
|
+
}
|
|
996
|
+
return result
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
const objectMapPool = function (o, concurrency, f) {
|
|
1000
|
+
const result = {}
|
|
1001
|
+
const doneKeys = {}
|
|
1002
|
+
for (const key in o) {
|
|
1003
|
+
doneKeys[key] = true
|
|
1004
|
+
const resultItem = f(o[key], key, o)
|
|
1005
|
+
if (isPromise(resultItem)) {
|
|
1006
|
+
const promises = new Set()
|
|
1007
|
+
result[key] = resultItem
|
|
1008
|
+
const selfDeletingPromise = resultItem.then(resolvedValue => {
|
|
1009
|
+
promises.delete(selfDeletingPromise)
|
|
1010
|
+
result[key] = resolvedValue
|
|
1011
|
+
})
|
|
1012
|
+
promises.add(selfDeletingPromise)
|
|
1013
|
+
return _objectMapPoolAsync(o, concurrency, f, result, doneKeys, promises)
|
|
1014
|
+
}
|
|
1015
|
+
result[key] = resultItem
|
|
1016
|
+
}
|
|
1017
|
+
return result
|
|
1018
|
+
}
|
|
1019
|
+
|
|
846
1020
|
const _curryArity = (arity, func, args) => function curried(...curriedArgs) {
|
|
847
1021
|
const argsLength = args.length,
|
|
848
1022
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -978,7 +1152,7 @@ const _map = function (value, mapper) {
|
|
|
978
1152
|
}
|
|
979
1153
|
|
|
980
1154
|
const map = function (arg0, arg1) {
|
|
981
|
-
if (
|
|
1155
|
+
if (arg1 == null) {
|
|
982
1156
|
return curry2(_map, __, arg0)
|
|
983
1157
|
}
|
|
984
1158
|
return isPromise(arg0)
|
|
@@ -1001,7 +1175,7 @@ const _mapEntries = (value, mapper) => {
|
|
|
1001
1175
|
}
|
|
1002
1176
|
|
|
1003
1177
|
map.entries = function mapEntries(arg0, arg1) {
|
|
1004
|
-
if (
|
|
1178
|
+
if (arg1 == null) {
|
|
1005
1179
|
return curry2(_mapEntries, __, arg0)
|
|
1006
1180
|
}
|
|
1007
1181
|
return isPromise(arg0)
|
|
@@ -1033,7 +1207,7 @@ const _mapSeries = function (collection, f) {
|
|
|
1033
1207
|
}
|
|
1034
1208
|
|
|
1035
1209
|
map.series = function mapSeries(arg0, arg1) {
|
|
1036
|
-
if (
|
|
1210
|
+
if (arg1 == null) {
|
|
1037
1211
|
return curry2(_mapSeries, __, arg0)
|
|
1038
1212
|
}
|
|
1039
1213
|
return isPromise(arg0)
|
|
@@ -1041,11 +1215,35 @@ map.series = function mapSeries(arg0, arg1) {
|
|
|
1041
1215
|
: _mapSeries(arg0, arg1)
|
|
1042
1216
|
}
|
|
1043
1217
|
|
|
1044
|
-
|
|
1045
|
-
if (isArray(
|
|
1046
|
-
return arrayMapPool(
|
|
1218
|
+
const _mapPool = function (collection, concurrency, f) {
|
|
1219
|
+
if (isArray(collection)) {
|
|
1220
|
+
return arrayMapPool(collection, concurrency, f)
|
|
1221
|
+
}
|
|
1222
|
+
if (collection == null) {
|
|
1223
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
1224
|
+
}
|
|
1225
|
+
if (typeof collection == 'string' || collection.constructor == String) {
|
|
1226
|
+
return stringMapPool(collection, concurrency, f)
|
|
1227
|
+
}
|
|
1228
|
+
if (collection.constructor == Set) {
|
|
1229
|
+
return setMapPool(collection, concurrency, f)
|
|
1230
|
+
}
|
|
1231
|
+
if (collection.constructor == Map) {
|
|
1232
|
+
return mapMapPool(collection, concurrency, f)
|
|
1233
|
+
}
|
|
1234
|
+
if (collection.constructor == Object) {
|
|
1235
|
+
return objectMapPool(collection, concurrency, f)
|
|
1236
|
+
}
|
|
1237
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
map.pool = function mapPool(arg0, arg1, arg2) {
|
|
1241
|
+
if (arg2 == null) {
|
|
1242
|
+
return curry3(_mapPool, __, arg0, arg1)
|
|
1047
1243
|
}
|
|
1048
|
-
|
|
1244
|
+
return isPromise(arg0)
|
|
1245
|
+
? arg0.then(curry3(_mapPool, __, arg1, arg2))
|
|
1246
|
+
: _mapPool(arg0, arg1, arg2)
|
|
1049
1247
|
}
|
|
1050
1248
|
|
|
1051
1249
|
const FilteringIterator = (iterator, predicate) => ({
|
|
@@ -2152,7 +2350,8 @@ const _forEach = function (collection, callback) {
|
|
|
2152
2350
|
return collection
|
|
2153
2351
|
}
|
|
2154
2352
|
if (typeof collection.forEach == 'function') {
|
|
2155
|
-
|
|
2353
|
+
collection.forEach(callback)
|
|
2354
|
+
return collection
|
|
2156
2355
|
}
|
|
2157
2356
|
if (typeof collection[symbolIterator] == 'function') {
|
|
2158
2357
|
return iteratorForEach(collection[symbolIterator](), callback)
|
package/lt.js
CHANGED
|
@@ -47,6 +47,12 @@ const lessThan = require('./_internal/lessThan')
|
|
|
47
47
|
* console.log, // true
|
|
48
48
|
* ])
|
|
49
49
|
* ```
|
|
50
|
+
*
|
|
51
|
+
* Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
|
|
52
|
+
*
|
|
53
|
+
* ```javascript [playground]
|
|
54
|
+
* lt(Promise.resolve({ a: 1, b: 2 }), get('a'), get('b')).then(console.log) // true
|
|
55
|
+
* ```
|
|
50
56
|
*/
|
|
51
57
|
const lt = ComparisonOperator(lessThan)
|
|
52
58
|
|
package/lte.js
CHANGED
|
@@ -47,6 +47,12 @@ const lessThanOrEqual = require('./_internal/lessThanOrEqual')
|
|
|
47
47
|
* console.log, // true
|
|
48
48
|
* ])
|
|
49
49
|
* ```
|
|
50
|
+
*
|
|
51
|
+
* Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
|
|
52
|
+
*
|
|
53
|
+
* ```javascript [playground]
|
|
54
|
+
* lte(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
|
|
55
|
+
* ```
|
|
50
56
|
*/
|
|
51
57
|
const lte = ComparisonOperator(lessThanOrEqual)
|
|
52
58
|
|