rubico 2.4.2 → 2.5.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/README.md +3 -0
- package/_internal/mapMapSeries.js +62 -0
- package/_internal/objectForEachSeries.js +6 -4
- package/_internal/objectMapSeries.js +61 -0
- package/_internal/setAdd.js +14 -0
- package/_internal/setMapSeries.js +61 -0
- package/_internal/stringMap.js +1 -1
- package/_internal/stringMapSeries.js +31 -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 +9 -7
- package/dist/forEach.es.min.js +2 -2
- package/dist/forEach.js +9 -7
- package/dist/forEach.min.js +2 -2
- package/dist/forEach.mjs +9 -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 +163 -9
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +163 -9
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +163 -9
- 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 +167 -19
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +167 -19
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +167 -19
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +167 -19
- 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 +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 +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 +163 -9
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +163 -9
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +163 -9
- 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 +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 +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/es.js +167 -19
- package/forEach.js +2 -2
- package/index.js +167 -19
- package/map.js +62 -7
- package/package.json +1 -1
package/dist/x/pluck.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.5.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.
|
|
@@ -292,6 +292,139 @@ const arrayMapSeries = function (array, mapper) {
|
|
|
292
292
|
return result
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
+
const stringMapSeries = function (string, mapper) {
|
|
296
|
+
const result = arrayMapSeries(string, mapper)
|
|
297
|
+
return isPromise(result)
|
|
298
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
299
|
+
: result.join('')
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
|
|
303
|
+
return func(arg0, arg1, arg2, arg3)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// _objectMapSeriesAsync(
|
|
307
|
+
// object Object,
|
|
308
|
+
// f function,
|
|
309
|
+
// result Object,
|
|
310
|
+
// doneKeys Object
|
|
311
|
+
// ) -> Promise<object>
|
|
312
|
+
const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
|
|
313
|
+
for (const key in object) {
|
|
314
|
+
if (key in doneKeys) {
|
|
315
|
+
continue
|
|
316
|
+
}
|
|
317
|
+
let resultItem = f(object[key])
|
|
318
|
+
if (isPromise(resultItem)) {
|
|
319
|
+
resultItem = await resultItem
|
|
320
|
+
}
|
|
321
|
+
result[key] = resultItem
|
|
322
|
+
}
|
|
323
|
+
return result
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const objectMapSeries = function (object, f) {
|
|
327
|
+
const result = {}
|
|
328
|
+
const doneKeys = {}
|
|
329
|
+
for (const key in object) {
|
|
330
|
+
doneKeys[key] = true
|
|
331
|
+
const resultItem = f(object[key], key, object)
|
|
332
|
+
if (isPromise(resultItem)) {
|
|
333
|
+
return resultItem.then(funcConcat(
|
|
334
|
+
curry3(objectSet, result, key, __),
|
|
335
|
+
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
336
|
+
))
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return result
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const thunkify3 = (func, arg0, arg1, arg2) => function thunk() {
|
|
343
|
+
return func(arg0, arg1, arg2)
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
const setAdd = function (set, value) {
|
|
347
|
+
set.add(value)
|
|
348
|
+
return set
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// _setMapSeriesAsync(
|
|
352
|
+
// iterator Iterator,
|
|
353
|
+
// f function,
|
|
354
|
+
// result Set,
|
|
355
|
+
// ) -> Promise<Set>
|
|
356
|
+
const _setMapSeriesAsync = async function (iterator, f, result) {
|
|
357
|
+
let iteration = iterator.next()
|
|
358
|
+
while (!iteration.done) {
|
|
359
|
+
let resultItem = f(iteration.value)
|
|
360
|
+
if (isPromise(resultItem)) {
|
|
361
|
+
resultItem = await resultItem
|
|
362
|
+
}
|
|
363
|
+
result.add(resultItem)
|
|
364
|
+
iteration = iterator.next()
|
|
365
|
+
}
|
|
366
|
+
return result
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
const setMapSeries = function (set, f) {
|
|
370
|
+
const result = new Set()
|
|
371
|
+
const iterator = set[symbolIterator]()
|
|
372
|
+
let iteration = iterator.next()
|
|
373
|
+
while (!iteration.done) {
|
|
374
|
+
const resultItem = f(iteration.value)
|
|
375
|
+
if (isPromise(resultItem)) {
|
|
376
|
+
return resultItem.then(funcConcat(
|
|
377
|
+
curry2(setAdd, result, __),
|
|
378
|
+
thunkify3(_setMapSeriesAsync, iterator, f, result),
|
|
379
|
+
))
|
|
380
|
+
}
|
|
381
|
+
result.add(resultItem)
|
|
382
|
+
iteration = iterator.next()
|
|
383
|
+
}
|
|
384
|
+
return result
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
const mapSet = function setting(source, key, value) {
|
|
388
|
+
return source.set(key, value)
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// _mapMapSeriesAsync(
|
|
392
|
+
// iterator Iterator,
|
|
393
|
+
// f function,
|
|
394
|
+
// result Map,
|
|
395
|
+
// ) -> Promise<Map>
|
|
396
|
+
const _mapMapSeriesAsync = async function (iterator, f, result) {
|
|
397
|
+
let iteration = iterator.next()
|
|
398
|
+
while (!iteration.done) {
|
|
399
|
+
let resultItem = f(iteration.value[1])
|
|
400
|
+
if (isPromise(resultItem)) {
|
|
401
|
+
resultItem = await resultItem
|
|
402
|
+
}
|
|
403
|
+
result.set(iteration.value[0], resultItem)
|
|
404
|
+
iteration = iterator.next()
|
|
405
|
+
}
|
|
406
|
+
return result
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
const mapMapSeries = function (map, f) {
|
|
410
|
+
const result = new Map()
|
|
411
|
+
const iterator = map[symbolIterator]()
|
|
412
|
+
let iteration = iterator.next()
|
|
413
|
+
while (!iteration.done) {
|
|
414
|
+
const key = iteration.value[0]
|
|
415
|
+
const resultItem = f(iteration.value[1])
|
|
416
|
+
if (isPromise(resultItem)) {
|
|
417
|
+
return resultItem.then(funcConcat(
|
|
418
|
+
curry3(mapSet, result, key, __),
|
|
419
|
+
thunkify3(_mapMapSeriesAsync, iterator, f, result),
|
|
420
|
+
))
|
|
421
|
+
}
|
|
422
|
+
result.set(key, resultItem)
|
|
423
|
+
iteration = iterator.next()
|
|
424
|
+
}
|
|
425
|
+
return result
|
|
426
|
+
}
|
|
427
|
+
|
|
295
428
|
const tapSync = func => function tapping(...args) {
|
|
296
429
|
func(...args)
|
|
297
430
|
return args[0]
|
|
@@ -420,10 +553,6 @@ const objectMapEntries = function (object, mapper) {
|
|
|
420
553
|
: promiseAll(promises).then(always(result))
|
|
421
554
|
}
|
|
422
555
|
|
|
423
|
-
const mapSet = function setting(source, key, value) {
|
|
424
|
-
return source.set(key, value)
|
|
425
|
-
}
|
|
426
|
-
|
|
427
556
|
// (mapper function, result Map, promises Array<Promise>) => (key any, value any) => ()
|
|
428
557
|
const mapMapEntriesForEachCallback = (
|
|
429
558
|
mapper, result, promises,
|
|
@@ -512,11 +641,36 @@ map.entries = function mapEntries(arg0, arg1) {
|
|
|
512
641
|
: _mapEntries(arg0, arg1)
|
|
513
642
|
}
|
|
514
643
|
|
|
515
|
-
|
|
516
|
-
if (isArray(
|
|
517
|
-
return arrayMapSeries(
|
|
644
|
+
const _mapSeries = function (collection, f) {
|
|
645
|
+
if (isArray(collection)) {
|
|
646
|
+
return arrayMapSeries(collection, f)
|
|
518
647
|
}
|
|
519
|
-
|
|
648
|
+
if (collection == null) {
|
|
649
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
if (typeof collection == 'string' || collection.constructor == String) {
|
|
653
|
+
return stringMapSeries(collection, f)
|
|
654
|
+
}
|
|
655
|
+
if (collection.constructor == Set) {
|
|
656
|
+
return setMapSeries(collection, f)
|
|
657
|
+
}
|
|
658
|
+
if (collection.constructor == Map) {
|
|
659
|
+
return mapMapSeries(collection, f)
|
|
660
|
+
}
|
|
661
|
+
if (collection.constructor == Object) {
|
|
662
|
+
return objectMapSeries(collection, f)
|
|
663
|
+
}
|
|
664
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
map.series = function mapSeries(arg0, arg1) {
|
|
668
|
+
if (typeof arg0 == 'function') {
|
|
669
|
+
return curry2(_mapSeries, __, arg0)
|
|
670
|
+
}
|
|
671
|
+
return isPromise(arg0)
|
|
672
|
+
? arg0.then(curry2(_mapSeries, __, arg1))
|
|
673
|
+
: _mapSeries(arg0, arg1)
|
|
520
674
|
}
|
|
521
675
|
|
|
522
676
|
map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
package/dist/x/pluck.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.5.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,funcConcat=(r,t)=>function(...e){const n=r(...e);return isPromise(n)?n.then(t):t(n)},symbolIterator=Symbol.iterator,MappingIterator=(r,t)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const e=r.next();return e.done?e:{value:t(e.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,t)=>({[symbolAsyncIterator](){return this},async next(){const e=await r.next();if(e.done)return e;const n=t(e.value);return isPromise(n)?n.then(NextIteration):{value:n,done:!1}}}),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(e){return r(e,t)},curry2ResolveArg1=(r,t)=>function(e){return r(t,e)},curry2=function(r,t,e){return t==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,t){const e=r.length,n=Array(e);let o=-1,s=!1;for(;++o<e;){const e=t(r[o],o,r);isPromise(e)&&(s=!0),n[o]=e}return s?promiseAll(n):n},curry3ResolveArg0=(r,t,e)=>function(n){return r(n,t,e)},curry3ResolveArg1=(r,t,e)=>function(n){return r(t,n,e)},curry3ResolveArg2=(r,t,e)=>function(n){return r(t,e,n)},curry3=function(r,t,e,n){return t==__?curry3ResolveArg0(r,e,n):e==__?curry3ResolveArg1(r,t,n):curry3ResolveArg2(r,t,e)},callPropUnary=(r,t,e)=>r[t](e),stringMap=function(r,t){const e=arrayMap(r,t);return isPromise(e)?e.then(curry3(callPropUnary,__,"join","")):e.join("")},always=r=>function(){return r},setMap=function(r,t){const e=new Set,n=[];for(const o of r){const s=t(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,e,"add",__))):e.add(s)}return 0==n.length?e:promiseAll(n).then(always(e))},curry4ResolveArg0=(r,t,e,n)=>function(o){return r(o,t,e,n)},curry4ResolveArg1=(r,t,e,n)=>function(o){return r(t,o,e,n)},curry4ResolveArg2=(r,t,e,n)=>function(o){return r(t,e,o,n)},curry4ResolveArg3=(r,t,e,n)=>function(o){return r(t,e,n,o)},curry4=function(r,t,e,n,o){return t==__?curry4ResolveArg0(r,e,n,o):e==__?curry4ResolveArg1(r,t,n,o):n==__?curry4ResolveArg2(r,t,e,o):curry4ResolveArg3(r,t,e,n)},callPropBinary=(r,t,e,n)=>r[t](e,n),mapMap=function(r,t){const e=new Map,n=[];for(const[o,s]of r){const
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,t)=>function(...e){const n=r(...e);return isPromise(n)?n.then(t):t(n)},symbolIterator=Symbol.iterator,MappingIterator=(r,t)=>({toString:()=>"[object MappingIterator]",[symbolIterator](){return this},next(){const e=r.next();return e.done?e:{value:t(e.value),done:!1}}}),NextIteration=r=>({value:r,done:!1}),symbolAsyncIterator=Symbol.asyncIterator,MappingAsyncIterator=(r,t)=>({[symbolAsyncIterator](){return this},async next(){const e=await r.next();if(e.done)return e;const n=t(e.value);return isPromise(n)?n.then(NextIteration):{value:n,done:!1}}}),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(e){return r(e,t)},curry2ResolveArg1=(r,t)=>function(e){return r(t,e)},curry2=function(r,t,e){return t==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const t=typeof r;return"object"==t||"function"==t},promiseAll=Promise.all.bind(Promise),arrayMap=function(r,t){const e=r.length,n=Array(e);let o=-1,s=!1;for(;++o<e;){const e=t(r[o],o,r);isPromise(e)&&(s=!0),n[o]=e}return s?promiseAll(n):n},curry3ResolveArg0=(r,t,e)=>function(n){return r(n,t,e)},curry3ResolveArg1=(r,t,e)=>function(n){return r(t,n,e)},curry3ResolveArg2=(r,t,e)=>function(n){return r(t,e,n)},curry3=function(r,t,e,n){return t==__?curry3ResolveArg0(r,e,n):e==__?curry3ResolveArg1(r,t,n):curry3ResolveArg2(r,t,e)},callPropUnary=(r,t,e)=>r[t](e),stringMap=function(r,t){const e=arrayMap(r,t);return isPromise(e)?e.then(curry3(callPropUnary,__,"join","")):e.join("")},always=r=>function(){return r},setMap=function(r,t){const e=new Set,n=[];for(const o of r){const s=t(o,o,r);isPromise(s)?n.push(s.then(curry3(callPropUnary,e,"add",__))):e.add(s)}return 0==n.length?e:promiseAll(n).then(always(e))},curry4ResolveArg0=(r,t,e,n)=>function(o){return r(o,t,e,n)},curry4ResolveArg1=(r,t,e,n)=>function(o){return r(t,o,e,n)},curry4ResolveArg2=(r,t,e,n)=>function(o){return r(t,e,o,n)},curry4ResolveArg3=(r,t,e,n)=>function(o){return r(t,e,n,o)},curry4=function(r,t,e,n,o){return t==__?curry4ResolveArg0(r,e,n,o):e==__?curry4ResolveArg1(r,t,n,o):n==__?curry4ResolveArg2(r,t,e,o):curry4ResolveArg3(r,t,e,n)},callPropBinary=(r,t,e,n)=>r[t](e,n),mapMap=function(r,t){const e=new Map,n=[];for(const[o,s]of r){const i=t(s,o,r);isPromise(i)?n.push(i.then(curry4(callPropBinary,e,"set",o,__))):e.set(o,i)}return 0==n.length?e:promiseAll(n).then(always(e))},promiseObjectAllExecutor=r=>function(t){const e={};let n=0;for(const o in r){const s=r[o];isPromise(s)?(n+=1,s.then((r=>function(o){e[r]=o,n-=1,0==n&&t(e)})(o))):e[o]=s}0==n&&t(e)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),objectMap=function(r,t){const e={};let n=!1;for(const o in r){const s=t(r[o],o,r);isPromise(s)&&(n=!0),e[o]=s}return n?promiseObjectAll(e):e},objectSet=function(r,t,e){return r[t]=e,r},arrayMapSeriesAsync=async function(r,t,e,n){const o=r.length;for(;++n<o;){const o=t(r[n],n);e[n]=isPromise(o)?await o:o}return e},arrayMapSeries=function(r,t){const e=r.length,n=Array(e);let o=-1;for(;++o<e;){const e=t(r[o],o);if(isPromise(e))return e.then(funcConcat(curry3(objectSet,n,o,__),curry4(arrayMapSeriesAsync,r,t,__,o)));n[o]=e}return n},stringMapSeries=function(r,t){const e=arrayMapSeries(r,t);return isPromise(e)?e.then(curry3(callPropUnary,__,"join","")):e.join("")},thunkify4=(r,t,e,n,o)=>function(){return r(t,e,n,o)},_objectMapSeriesAsync=async function(r,t,e,n){for(const o in r){if(o in n)continue;let s=t(r[o]);isPromise(s)&&(s=await s),e[o]=s}return e},objectMapSeries=function(r,t){const e={},n={};for(const o in r){n[o]=!0;const s=t(r[o],o,r);if(isPromise(s))return s.then(funcConcat(curry3(objectSet,e,o,__),thunkify4(_objectMapSeriesAsync,r,t,e,n)))}return e},thunkify3=(r,t,e,n)=>function(){return r(t,e,n)},setAdd=function(r,t){return r.add(t),r},_setMapSeriesAsync=async function(r,t,e){let n=r.next();for(;!n.done;){let o=t(n.value);isPromise(o)&&(o=await o),e.add(o),n=r.next()}return e},setMapSeries=function(r,t){const e=new Set,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=t(o.value);if(isPromise(r))return r.then(funcConcat(curry2(setAdd,e,__),thunkify3(_setMapSeriesAsync,n,t,e)));e.add(r),o=n.next()}return e},mapSet=function(r,t,e){return r.set(t,e)},_mapMapSeriesAsync=async function(r,t,e){let n=r.next();for(;!n.done;){let o=t(n.value[1]);isPromise(o)&&(o=await o),e.set(n.value[0],o),n=r.next()}return e},mapMapSeries=function(r,t){const e=new Map,n=r[symbolIterator]();let o=n.next();for(;!o.done;){const r=o.value[0],s=t(o.value[1]);if(isPromise(s))return s.then(funcConcat(curry3(mapSet,e,r,__),thunkify3(_mapMapSeriesAsync,n,t,e)));e.set(r,s),o=n.next()}return e},tapSync=r=>function(...t){return r(...t),t[0]},promiseRace=Promise.race.bind(Promise),arrayMapPoolAsync=async function(r,t,e,n,o,s){const i=r.length;for(;++o<i;){s.size>=e&&await promiseRace(s);const i=t(r[o]);if(isPromise(i)){const r=i.then(tapSync((()=>s.delete(r))));s.add(r),n[o]=r}else n[o]=i}return promiseAll(n)},arrayMapPool=function(r,t,e){const n=r.length,o=Array(n);let s=-1;for(;++s<n;){const n=t(r[s]);if(isPromise(n)){const i=new Set,c=n.then(tapSync((()=>i.delete(c))));return i.add(c),o[s]=c,arrayMapPoolAsync(r,t,e,o,s,i)}o[s]=n}return o},_curryArity=(r,t,e)=>function(...n){const o=e.length,s=n.length,i=[];let c=-1,a=-1,u=0;for(;++c<o;){const o=e[c];if(o==__&&(a+=1)<s){const r=n[a];r==__&&(u+=1),i.push(r)}else i.push(o);if(i.length==r)return 0==u?t(...i):curryArity(r,t,i)}for(;++a<s;){const e=n[a];if(e==__&&(u+=1),i.push(e),i.length==r)return 0==u?t(...i):curryArity(r,t,i)}return curryArity(r,t,i)},curryArity=function(r,t,e){const n=e.length;if(n<r)return _curryArity(r,t,e);let o=-1;for(;++o<n;){if(e[o]==__)return _curryArity(r,t,e)}return t(...e)},spread2=r=>function([t,e]){return r(t,e)},objectMapEntries=function(r,t){const e={},n=[];for(const o in r){const s=t([o,r[o]]);isPromise(s)?n.push(s.then(spread2(curryArity(3,objectSet,[e])))):e[s[0]]=s[1]}return 0==n.length?e:promiseAll(n).then(always(e))},mapMapEntriesForEachCallback=(r,t,e)=>function(n,o){const s=r([o,n]);isPromise(s)?e.push(s.then(spread2(curryArity(3,mapSet,[t])))):t.set(s[0],s[1])},mapMapEntries=function(r,t){const e=new Map,n=[];return r.forEach(mapMapEntriesForEachCallback(t,e,n)),0==n.length?e:promiseAll(n).then(always(e))},_map=function(r,t){return isArray(r)?arrayMap(r,t):null==r?r:"function"==typeof r.then?r.then(t):"function"==typeof r.map?r.map(t):"string"==typeof r||r.constructor==String?stringMap(r,t):r.constructor==Set?setMap(r,t):r.constructor==Map?mapMap(r,t):"function"==typeof r[symbolIterator]?MappingIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?MappingAsyncIterator(r[symbolAsyncIterator](),t):r.constructor==Object?objectMap(r,t):t(r)},map=function(r,t){return"function"==typeof r?curry2(_map,__,r):isPromise(r)?r.then(curry2(_map,__,t)):_map(r,t)},_mapEntries=(r,t)=>{if(null==r)throw new TypeError("value is not an Object or Map");if(r.constructor==Object)return objectMapEntries(r,t);if(r.constructor==Map)return mapMapEntries(r,t);throw new TypeError("value is not an Object or Map")};map.entries=function(r,t){return"function"==typeof r?curry2(_mapEntries,__,r):isPromise(r)?r.then(curry2(_mapEntries,__,t)):_mapEntries(r,t)};const _mapSeries=function(r,t){if(isArray(r))return arrayMapSeries(r,t);if(null==r)throw new TypeError(`invalid collection ${r}`);if("string"==typeof r||r.constructor==String)return stringMapSeries(r,t);if(r.constructor==Set)return setMapSeries(r,t);if(r.constructor==Map)return mapMapSeries(r,t);if(r.constructor==Object)return objectMapSeries(r,t);throw new TypeError(`invalid collection ${r}`)};map.series=function(r,t){return"function"==typeof r?curry2(_mapSeries,__,r):isPromise(r)?r.then(curry2(_mapSeries,__,t)):_mapSeries(r,t)},map.pool=(r,t)=>function(e){if(isArray(e))return arrayMapPool(e,t,r);throw new TypeError(`${e} is not an Array`)};const memoizeCappedUnary=function(r,t){const e=new Map,n=function(n){if(e.has(n))return e.get(n);const o=r(n);return e.set(n,o),e.size>t&&e.clear(),o};return n.cache=e,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const t=r.length-1,e="["==r[0],n="]"==r[t];return e&&n?r.slice(1,t).split(pathDelimiters):e?r.slice(1).split(pathDelimiters):n?r.slice(0,t).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,t){const e=propertyPathToArray(t),n=e.length;let o=-1,s=r;for(;++o<n;)if(s=s[e[o]],null==s)return;return s},_get=function(r,t,e){const n=null==r?void 0:getByPath(r,t);return void 0===n?"function"==typeof e?e(r):e:n},get=function(r,t,e){return"string"==typeof r||"number"==typeof r||isArray(r)?curry3(_get,__,r,t):isPromise(r)?r.then(curry3(_get,__,t,e)):_get(r,t,e)},pluck=function(...r){const t=r.pop(),e=get(t);return 0==r.length?map(e):map(r[0],e)};export default pluck;
|
package/dist/x/pluck.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.5.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.
|
|
@@ -298,6 +298,139 @@ const arrayMapSeries = function (array, mapper) {
|
|
|
298
298
|
return result
|
|
299
299
|
}
|
|
300
300
|
|
|
301
|
+
const stringMapSeries = function (string, mapper) {
|
|
302
|
+
const result = arrayMapSeries(string, mapper)
|
|
303
|
+
return isPromise(result)
|
|
304
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
305
|
+
: result.join('')
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
|
|
309
|
+
return func(arg0, arg1, arg2, arg3)
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// _objectMapSeriesAsync(
|
|
313
|
+
// object Object,
|
|
314
|
+
// f function,
|
|
315
|
+
// result Object,
|
|
316
|
+
// doneKeys Object
|
|
317
|
+
// ) -> Promise<object>
|
|
318
|
+
const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
|
|
319
|
+
for (const key in object) {
|
|
320
|
+
if (key in doneKeys) {
|
|
321
|
+
continue
|
|
322
|
+
}
|
|
323
|
+
let resultItem = f(object[key])
|
|
324
|
+
if (isPromise(resultItem)) {
|
|
325
|
+
resultItem = await resultItem
|
|
326
|
+
}
|
|
327
|
+
result[key] = resultItem
|
|
328
|
+
}
|
|
329
|
+
return result
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
const objectMapSeries = function (object, f) {
|
|
333
|
+
const result = {}
|
|
334
|
+
const doneKeys = {}
|
|
335
|
+
for (const key in object) {
|
|
336
|
+
doneKeys[key] = true
|
|
337
|
+
const resultItem = f(object[key], key, object)
|
|
338
|
+
if (isPromise(resultItem)) {
|
|
339
|
+
return resultItem.then(funcConcat(
|
|
340
|
+
curry3(objectSet, result, key, __),
|
|
341
|
+
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
342
|
+
))
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return result
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
const thunkify3 = (func, arg0, arg1, arg2) => function thunk() {
|
|
349
|
+
return func(arg0, arg1, arg2)
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
const setAdd = function (set, value) {
|
|
353
|
+
set.add(value)
|
|
354
|
+
return set
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
// _setMapSeriesAsync(
|
|
358
|
+
// iterator Iterator,
|
|
359
|
+
// f function,
|
|
360
|
+
// result Set,
|
|
361
|
+
// ) -> Promise<Set>
|
|
362
|
+
const _setMapSeriesAsync = async function (iterator, f, result) {
|
|
363
|
+
let iteration = iterator.next()
|
|
364
|
+
while (!iteration.done) {
|
|
365
|
+
let resultItem = f(iteration.value)
|
|
366
|
+
if (isPromise(resultItem)) {
|
|
367
|
+
resultItem = await resultItem
|
|
368
|
+
}
|
|
369
|
+
result.add(resultItem)
|
|
370
|
+
iteration = iterator.next()
|
|
371
|
+
}
|
|
372
|
+
return result
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
const setMapSeries = function (set, f) {
|
|
376
|
+
const result = new Set()
|
|
377
|
+
const iterator = set[symbolIterator]()
|
|
378
|
+
let iteration = iterator.next()
|
|
379
|
+
while (!iteration.done) {
|
|
380
|
+
const resultItem = f(iteration.value)
|
|
381
|
+
if (isPromise(resultItem)) {
|
|
382
|
+
return resultItem.then(funcConcat(
|
|
383
|
+
curry2(setAdd, result, __),
|
|
384
|
+
thunkify3(_setMapSeriesAsync, iterator, f, result),
|
|
385
|
+
))
|
|
386
|
+
}
|
|
387
|
+
result.add(resultItem)
|
|
388
|
+
iteration = iterator.next()
|
|
389
|
+
}
|
|
390
|
+
return result
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
const mapSet = function setting(source, key, value) {
|
|
394
|
+
return source.set(key, value)
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// _mapMapSeriesAsync(
|
|
398
|
+
// iterator Iterator,
|
|
399
|
+
// f function,
|
|
400
|
+
// result Map,
|
|
401
|
+
// ) -> Promise<Map>
|
|
402
|
+
const _mapMapSeriesAsync = async function (iterator, f, result) {
|
|
403
|
+
let iteration = iterator.next()
|
|
404
|
+
while (!iteration.done) {
|
|
405
|
+
let resultItem = f(iteration.value[1])
|
|
406
|
+
if (isPromise(resultItem)) {
|
|
407
|
+
resultItem = await resultItem
|
|
408
|
+
}
|
|
409
|
+
result.set(iteration.value[0], resultItem)
|
|
410
|
+
iteration = iterator.next()
|
|
411
|
+
}
|
|
412
|
+
return result
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
const mapMapSeries = function (map, f) {
|
|
416
|
+
const result = new Map()
|
|
417
|
+
const iterator = map[symbolIterator]()
|
|
418
|
+
let iteration = iterator.next()
|
|
419
|
+
while (!iteration.done) {
|
|
420
|
+
const key = iteration.value[0]
|
|
421
|
+
const resultItem = f(iteration.value[1])
|
|
422
|
+
if (isPromise(resultItem)) {
|
|
423
|
+
return resultItem.then(funcConcat(
|
|
424
|
+
curry3(mapSet, result, key, __),
|
|
425
|
+
thunkify3(_mapMapSeriesAsync, iterator, f, result),
|
|
426
|
+
))
|
|
427
|
+
}
|
|
428
|
+
result.set(key, resultItem)
|
|
429
|
+
iteration = iterator.next()
|
|
430
|
+
}
|
|
431
|
+
return result
|
|
432
|
+
}
|
|
433
|
+
|
|
301
434
|
const tapSync = func => function tapping(...args) {
|
|
302
435
|
func(...args)
|
|
303
436
|
return args[0]
|
|
@@ -426,10 +559,6 @@ const objectMapEntries = function (object, mapper) {
|
|
|
426
559
|
: promiseAll(promises).then(always(result))
|
|
427
560
|
}
|
|
428
561
|
|
|
429
|
-
const mapSet = function setting(source, key, value) {
|
|
430
|
-
return source.set(key, value)
|
|
431
|
-
}
|
|
432
|
-
|
|
433
562
|
// (mapper function, result Map, promises Array<Promise>) => (key any, value any) => ()
|
|
434
563
|
const mapMapEntriesForEachCallback = (
|
|
435
564
|
mapper, result, promises,
|
|
@@ -518,11 +647,36 @@ map.entries = function mapEntries(arg0, arg1) {
|
|
|
518
647
|
: _mapEntries(arg0, arg1)
|
|
519
648
|
}
|
|
520
649
|
|
|
521
|
-
|
|
522
|
-
if (isArray(
|
|
523
|
-
return arrayMapSeries(
|
|
650
|
+
const _mapSeries = function (collection, f) {
|
|
651
|
+
if (isArray(collection)) {
|
|
652
|
+
return arrayMapSeries(collection, f)
|
|
524
653
|
}
|
|
525
|
-
|
|
654
|
+
if (collection == null) {
|
|
655
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
if (typeof collection == 'string' || collection.constructor == String) {
|
|
659
|
+
return stringMapSeries(collection, f)
|
|
660
|
+
}
|
|
661
|
+
if (collection.constructor == Set) {
|
|
662
|
+
return setMapSeries(collection, f)
|
|
663
|
+
}
|
|
664
|
+
if (collection.constructor == Map) {
|
|
665
|
+
return mapMapSeries(collection, f)
|
|
666
|
+
}
|
|
667
|
+
if (collection.constructor == Object) {
|
|
668
|
+
return objectMapSeries(collection, f)
|
|
669
|
+
}
|
|
670
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
map.series = function mapSeries(arg0, arg1) {
|
|
674
|
+
if (typeof arg0 == 'function') {
|
|
675
|
+
return curry2(_mapSeries, __, arg0)
|
|
676
|
+
}
|
|
677
|
+
return isPromise(arg0)
|
|
678
|
+
? arg0.then(curry2(_mapSeries, __, arg1))
|
|
679
|
+
: _mapSeries(arg0, arg1)
|
|
526
680
|
}
|
|
527
681
|
|
|
528
682
|
map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
package/dist/x/pluck.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.5.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.pluck=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=(t,e)=>function(...r){const o=t(...r);return n(o)?o.then(e):e(o)},e=Symbol.iterator,r=(n,t)=>({toString:()=>"[object MappingIterator]",[e](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),o=n=>({value:n,done:!1}),u=Symbol.asyncIterator,c=(t,e)=>({[u](){return this},async next(){const r=await t.next();if(r.done)return r;const u=e(r.value);return n(u)?u.then(o):{value:u,done:!1}}}),i=Symbol.for("placeholder"),f=function(n,t,e){return t==i?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},s=Array.isArray,l=Promise.all.bind(Promise),
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.pluck=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=(t,e)=>function(...r){const o=t(...r);return n(o)?o.then(e):e(o)},e=Symbol.iterator,r=(n,t)=>({toString:()=>"[object MappingIterator]",[e](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),o=n=>({value:n,done:!1}),u=Symbol.asyncIterator,c=(t,e)=>({[u](){return this},async next(){const r=await t.next();if(r.done)return r;const u=e(r.value);return n(u)?u.then(o):{value:u,done:!1}}}),i=Symbol.for("placeholder"),f=function(n,t,e){return t==i?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},s=Array.isArray,l=Promise.all.bind(Promise),a=function(t,e){const r=t.length,o=Array(r);let u=-1,c=!1;for(;++u<r;){const r=e(t[u],u,t);n(r)&&(c=!0),o[u]=r}return c?l(o):o},h=function(n,t,e,r){return t==i?((n,t,e)=>function(r){return n(r,t,e)})(n,e,r):e==i?((n,t,e)=>function(r){return n(t,r,e)})(n,t,r):((n,t,e)=>function(r){return n(t,e,r)})(n,t,e)},p=(n,t,e)=>n[t](e),y=n=>function(){return n},d=function(n,t,e,r,o){return t==i?((n,t,e,r)=>function(o){return n(o,t,e,r)})(n,e,r,o):e==i?((n,t,e,r)=>function(o){return n(t,o,e,r)})(n,t,r,o):r==i?((n,t,e,r)=>function(o){return n(t,e,o,r)})(n,t,e,o):((n,t,e,r)=>function(o){return n(t,e,r,o)})(n,t,e,r)},g=(n,t,e,r)=>n[t](e,r),w=t=>new Promise((t=>function(e){const r={};let o=0;for(const u in t){const c=t[u];n(c)?(o+=1,c.then((n=>function(t){r[n]=t,o-=1,0==o&&e(r)})(u))):r[u]=c}0==o&&e(r)})(t)),v=function(n,t,e){return n[t]=e,n},b=async function(t,e,r,o){const u=t.length;for(;++o<u;){const u=e(t[o],o);r[o]=n(u)?await u:u}return r},m=function(e,r){const o=e.length,u=Array(o);let c=-1;for(;++c<o;){const o=r(e[c],c);if(n(o))return o.then(t(h(v,u,c,i),d(b,e,r,i,c)));u[c]=o}return u},x=(n,t,e,r,o)=>function(){return n(t,e,r,o)},j=async function(t,e,r,o){for(const u in t){if(u in o)continue;let c=e(t[u]);n(c)&&(c=await c),r[u]=c}return r},S=(n,t,e,r)=>function(){return n(t,e,r)},M=function(n,t){return n.add(t),n},T=async function(t,e,r){let o=t.next();for(;!o.done;){let u=e(o.value);n(u)&&(u=await u),r.add(u),o=t.next()}return r},A=function(n,t,e){return n.set(t,e)},E=async function(t,e,r){let o=t.next();for(;!o.done;){let u=e(o.value[1]);n(u)&&(u=await u),r.set(o.value[0],u),o=t.next()}return r},O=n=>function(...t){return n(...t),t[0]},P=Promise.race.bind(Promise),$=async function(t,e,r,o,u,c){const i=t.length;for(;++u<i;){c.size>=r&&await P(c);const i=e(t[u]);if(n(i)){const n=i.then(O((()=>c.delete(n))));c.add(n),o[u]=n}else o[u]=i}return l(o)},z=(n,t,e)=>function(...r){const o=e.length,u=r.length,c=[];let f=-1,s=-1,l=0;for(;++f<o;){const o=e[f];if(o==i&&(s+=1)<u){const n=r[s];n==i&&(l+=1),c.push(n)}else c.push(o);if(c.length==n)return 0==l?t(...c):I(n,t,c)}for(;++s<u;){const e=r[s];if(e==i&&(l+=1),c.push(e),c.length==n)return 0==l?t(...c):I(n,t,c)}return I(n,t,c)},I=function(n,t,e){const r=e.length;if(r<n)return z(n,t,e);let o=-1;for(;++o<r;){if(e[o]==i)return z(n,t,e)}return t(...e)},k=n=>function([t,e]){return n(t,e)},q=function(t,e){const r=new Map,o=[];return t.forEach(((t,e,r)=>function(o,u){const c=t([u,o]);n(c)?r.push(c.then(k(I(3,A,[e])))):e.set(c[0],c[1])})(e,r,o)),0==o.length?r:l(o).then(y(r))},B=function(t,o){return s(t)?a(t,o):null==t?t:"function"==typeof t.then?t.then(o):"function"==typeof t.map?t.map(o):"string"==typeof t||t.constructor==String?function(t,e){const r=a(t,e);return n(r)?r.then(h(p,i,"join","")):r.join("")}(t,o):t.constructor==Set?function(t,e){const r=new Set,o=[];for(const u of t){const c=e(u,u,t);n(c)?o.push(c.then(h(p,r,"add",i))):r.add(c)}return 0==o.length?r:l(o).then(y(r))}(t,o):t.constructor==Map?function(t,e){const r=new Map,o=[];for(const[u,c]of t){const f=e(c,u,t);n(f)?o.push(f.then(d(g,r,"set",u,i))):r.set(u,f)}return 0==o.length?r:l(o).then(y(r))}(t,o):"function"==typeof t[e]?r(t[e](),o):"function"==typeof t[u]?c(t[u](),o):t.constructor==Object?function(t,e){const r={};let o=!1;for(const u in t){const c=e(t[u],u,t);n(c)&&(o=!0),r[u]=c}return o?w(r):r}(t,o):o(t)},C=function(t,e){return"function"==typeof t?f(B,i,t):n(t)?t.then(f(B,i,e)):B(t,e)},D=(t,e)=>{if(null==t)throw new TypeError("value is not an Object or Map");if(t.constructor==Object)return function(t,e){const r={},o=[];for(const u in t){const c=e([u,t[u]]);n(c)?o.push(c.then(k(I(3,v,[r])))):r[c[0]]=c[1]}return 0==o.length?r:l(o).then(y(r))}(t,e);if(t.constructor==Map)return q(t,e);throw new TypeError("value is not an Object or Map")};C.entries=function(t,e){return"function"==typeof t?f(D,i,t):n(t)?t.then(f(D,i,e)):D(t,e)};const F=function(r,o){if(s(r))return m(r,o);if(null==r)throw new TypeError(`invalid collection ${r}`);if("string"==typeof r||r.constructor==String)return function(t,e){const r=m(t,e);return n(r)?r.then(h(p,i,"join","")):r.join("")}(r,o);if(r.constructor==Set)return function(r,o){const u=new Set,c=r[e]();let s=c.next();for(;!s.done;){const e=o(s.value);if(n(e))return e.then(t(f(M,u,i),S(T,c,o,u)));u.add(e),s=c.next()}return u}(r,o);if(r.constructor==Map)return function(r,o){const u=new Map,c=r[e]();let f=c.next();for(;!f.done;){const e=f.value[0],r=o(f.value[1]);if(n(r))return r.then(t(h(A,u,e,i),S(E,c,o,u)));u.set(e,r),f=c.next()}return u}(r,o);if(r.constructor==Object)return function(e,r){const o={},u={};for(const c in e){u[c]=!0;const f=r(e[c],c,e);if(n(f))return f.then(t(h(v,o,c,i),x(j,e,r,o,u)))}return o}(r,o);throw new TypeError(`invalid collection ${r}`)};C.series=function(t,e){return"function"==typeof t?f(F,i,t):n(t)?t.then(f(F,i,e)):F(t,e)},C.pool=(t,e)=>function(r){if(s(r))return function(t,e,r){const o=t.length,u=Array(o);let c=-1;for(;++c<o;){const o=e(t[c]);if(n(o)){const n=new Set,i=o.then(O((()=>n.delete(i))));return n.add(i),u[c]=i,$(t,e,r,u,c,n)}u[c]=o}return u}(r,e,t);throw new TypeError(`${r} is not an Array`)};const G=/[.|[|\]]+/,H=function(n,t){const e=new Map,r=function(r){if(e.has(r))return e.get(r);const o=n(r);return e.set(r,o),e.size>t&&e.clear(),o};return r.cache=e,r}((function(n){const t=n.length-1,e="["==n[0],r="]"==n[t];return e&&r?n.slice(1,t).split(G):e?n.slice(1).split(G):r?n.slice(0,t).split(G):n.split(G)}),500),J=function(n,t){const e=(n=>s(n)?n:"string"==typeof n?H(n):[n])(t),r=e.length;let o=-1,u=n;for(;++o<r;)if(u=u[e[o]],null==u)return;return u},K=function(n,t,e){const r=null==n?void 0:J(n,t);return void 0===r?"function"==typeof e?e(n):e:r};return function(...t){const e=t.pop(),r="string"==typeof(o=e)||"number"==typeof o||s(o)?h(K,i,o,u):n(o)?o.then(h(K,i,u,c)):K(o,u,c);var o,u,c;return 0==t.length?C(r):C(t[0],r)}}());
|
package/dist/x/pluck.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.5.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.
|
|
@@ -292,6 +292,139 @@ const arrayMapSeries = function (array, mapper) {
|
|
|
292
292
|
return result
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
+
const stringMapSeries = function (string, mapper) {
|
|
296
|
+
const result = arrayMapSeries(string, mapper)
|
|
297
|
+
return isPromise(result)
|
|
298
|
+
? result.then(curry3(callPropUnary, __, 'join', ''))
|
|
299
|
+
: result.join('')
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
const thunkify4 = (func, arg0, arg1, arg2, arg3) => function thunk() {
|
|
303
|
+
return func(arg0, arg1, arg2, arg3)
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// _objectMapSeriesAsync(
|
|
307
|
+
// object Object,
|
|
308
|
+
// f function,
|
|
309
|
+
// result Object,
|
|
310
|
+
// doneKeys Object
|
|
311
|
+
// ) -> Promise<object>
|
|
312
|
+
const _objectMapSeriesAsync = async function (object, f, result, doneKeys) {
|
|
313
|
+
for (const key in object) {
|
|
314
|
+
if (key in doneKeys) {
|
|
315
|
+
continue
|
|
316
|
+
}
|
|
317
|
+
let resultItem = f(object[key])
|
|
318
|
+
if (isPromise(resultItem)) {
|
|
319
|
+
resultItem = await resultItem
|
|
320
|
+
}
|
|
321
|
+
result[key] = resultItem
|
|
322
|
+
}
|
|
323
|
+
return result
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const objectMapSeries = function (object, f) {
|
|
327
|
+
const result = {}
|
|
328
|
+
const doneKeys = {}
|
|
329
|
+
for (const key in object) {
|
|
330
|
+
doneKeys[key] = true
|
|
331
|
+
const resultItem = f(object[key], key, object)
|
|
332
|
+
if (isPromise(resultItem)) {
|
|
333
|
+
return resultItem.then(funcConcat(
|
|
334
|
+
curry3(objectSet, result, key, __),
|
|
335
|
+
thunkify4(_objectMapSeriesAsync, object, f, result, doneKeys),
|
|
336
|
+
))
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return result
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
const thunkify3 = (func, arg0, arg1, arg2) => function thunk() {
|
|
343
|
+
return func(arg0, arg1, arg2)
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
const setAdd = function (set, value) {
|
|
347
|
+
set.add(value)
|
|
348
|
+
return set
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// _setMapSeriesAsync(
|
|
352
|
+
// iterator Iterator,
|
|
353
|
+
// f function,
|
|
354
|
+
// result Set,
|
|
355
|
+
// ) -> Promise<Set>
|
|
356
|
+
const _setMapSeriesAsync = async function (iterator, f, result) {
|
|
357
|
+
let iteration = iterator.next()
|
|
358
|
+
while (!iteration.done) {
|
|
359
|
+
let resultItem = f(iteration.value)
|
|
360
|
+
if (isPromise(resultItem)) {
|
|
361
|
+
resultItem = await resultItem
|
|
362
|
+
}
|
|
363
|
+
result.add(resultItem)
|
|
364
|
+
iteration = iterator.next()
|
|
365
|
+
}
|
|
366
|
+
return result
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
const setMapSeries = function (set, f) {
|
|
370
|
+
const result = new Set()
|
|
371
|
+
const iterator = set[symbolIterator]()
|
|
372
|
+
let iteration = iterator.next()
|
|
373
|
+
while (!iteration.done) {
|
|
374
|
+
const resultItem = f(iteration.value)
|
|
375
|
+
if (isPromise(resultItem)) {
|
|
376
|
+
return resultItem.then(funcConcat(
|
|
377
|
+
curry2(setAdd, result, __),
|
|
378
|
+
thunkify3(_setMapSeriesAsync, iterator, f, result),
|
|
379
|
+
))
|
|
380
|
+
}
|
|
381
|
+
result.add(resultItem)
|
|
382
|
+
iteration = iterator.next()
|
|
383
|
+
}
|
|
384
|
+
return result
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
const mapSet = function setting(source, key, value) {
|
|
388
|
+
return source.set(key, value)
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// _mapMapSeriesAsync(
|
|
392
|
+
// iterator Iterator,
|
|
393
|
+
// f function,
|
|
394
|
+
// result Map,
|
|
395
|
+
// ) -> Promise<Map>
|
|
396
|
+
const _mapMapSeriesAsync = async function (iterator, f, result) {
|
|
397
|
+
let iteration = iterator.next()
|
|
398
|
+
while (!iteration.done) {
|
|
399
|
+
let resultItem = f(iteration.value[1])
|
|
400
|
+
if (isPromise(resultItem)) {
|
|
401
|
+
resultItem = await resultItem
|
|
402
|
+
}
|
|
403
|
+
result.set(iteration.value[0], resultItem)
|
|
404
|
+
iteration = iterator.next()
|
|
405
|
+
}
|
|
406
|
+
return result
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
const mapMapSeries = function (map, f) {
|
|
410
|
+
const result = new Map()
|
|
411
|
+
const iterator = map[symbolIterator]()
|
|
412
|
+
let iteration = iterator.next()
|
|
413
|
+
while (!iteration.done) {
|
|
414
|
+
const key = iteration.value[0]
|
|
415
|
+
const resultItem = f(iteration.value[1])
|
|
416
|
+
if (isPromise(resultItem)) {
|
|
417
|
+
return resultItem.then(funcConcat(
|
|
418
|
+
curry3(mapSet, result, key, __),
|
|
419
|
+
thunkify3(_mapMapSeriesAsync, iterator, f, result),
|
|
420
|
+
))
|
|
421
|
+
}
|
|
422
|
+
result.set(key, resultItem)
|
|
423
|
+
iteration = iterator.next()
|
|
424
|
+
}
|
|
425
|
+
return result
|
|
426
|
+
}
|
|
427
|
+
|
|
295
428
|
const tapSync = func => function tapping(...args) {
|
|
296
429
|
func(...args)
|
|
297
430
|
return args[0]
|
|
@@ -420,10 +553,6 @@ const objectMapEntries = function (object, mapper) {
|
|
|
420
553
|
: promiseAll(promises).then(always(result))
|
|
421
554
|
}
|
|
422
555
|
|
|
423
|
-
const mapSet = function setting(source, key, value) {
|
|
424
|
-
return source.set(key, value)
|
|
425
|
-
}
|
|
426
|
-
|
|
427
556
|
// (mapper function, result Map, promises Array<Promise>) => (key any, value any) => ()
|
|
428
557
|
const mapMapEntriesForEachCallback = (
|
|
429
558
|
mapper, result, promises,
|
|
@@ -512,11 +641,36 @@ map.entries = function mapEntries(arg0, arg1) {
|
|
|
512
641
|
: _mapEntries(arg0, arg1)
|
|
513
642
|
}
|
|
514
643
|
|
|
515
|
-
|
|
516
|
-
if (isArray(
|
|
517
|
-
return arrayMapSeries(
|
|
644
|
+
const _mapSeries = function (collection, f) {
|
|
645
|
+
if (isArray(collection)) {
|
|
646
|
+
return arrayMapSeries(collection, f)
|
|
518
647
|
}
|
|
519
|
-
|
|
648
|
+
if (collection == null) {
|
|
649
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
if (typeof collection == 'string' || collection.constructor == String) {
|
|
653
|
+
return stringMapSeries(collection, f)
|
|
654
|
+
}
|
|
655
|
+
if (collection.constructor == Set) {
|
|
656
|
+
return setMapSeries(collection, f)
|
|
657
|
+
}
|
|
658
|
+
if (collection.constructor == Map) {
|
|
659
|
+
return mapMapSeries(collection, f)
|
|
660
|
+
}
|
|
661
|
+
if (collection.constructor == Object) {
|
|
662
|
+
return objectMapSeries(collection, f)
|
|
663
|
+
}
|
|
664
|
+
throw new TypeError(`invalid collection ${collection}`)
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
map.series = function mapSeries(arg0, arg1) {
|
|
668
|
+
if (typeof arg0 == 'function') {
|
|
669
|
+
return curry2(_mapSeries, __, arg0)
|
|
670
|
+
}
|
|
671
|
+
return isPromise(arg0)
|
|
672
|
+
? arg0.then(curry2(_mapSeries, __, arg1))
|
|
673
|
+
: _mapSeries(arg0, arg1)
|
|
520
674
|
}
|
|
521
675
|
|
|
522
676
|
map.pool = (concurrencyLimit, mapper) => function concurrentPoolMapping(value) {
|
package/dist/x/prepend.es.js
CHANGED