rubico 2.8.5 → 2.10.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 +2 -1
- package/_internal/FlatMappingAsyncIterator.js +41 -30
- package/_internal/LinkedList.js +54 -0
- package/_internal/LinkedList.test.js +34 -0
- package/_internal/MappingAsyncIterator.js +65 -15
- package/_internal/SerialMappingAsyncIterator.js +79 -0
- package/_internal/curryArity.js +3 -3
- package/_internal/iteratorFind.js +0 -2
- package/_internal/iteratorForEachSeries.js +1 -1
- package/_internal/objectFlatten.js +4 -1
- package/all.js +33 -59
- package/and.js +1 -1
- package/assign.js +14 -16
- package/compose.js +12 -13
- package/curry.js +1 -1
- 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 +4 -4
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +4 -4
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +4 -4
- 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 +4 -4
- package/dist/filter.es.min.js +2 -2
- package/dist/filter.js +4 -4
- package/dist/filter.min.js +2 -2
- package/dist/filter.mjs +4 -4
- package/dist/flatMap.es.js +44 -28
- package/dist/flatMap.es.min.js +2 -2
- package/dist/flatMap.js +44 -28
- package/dist/flatMap.min.js +2 -2
- package/dist/flatMap.mjs +44 -28
- package/dist/forEach.es.js +6 -6
- package/dist/forEach.es.min.js +2 -2
- package/dist/forEach.js +6 -6
- package/dist/forEach.min.js +2 -2
- package/dist/forEach.mjs +6 -6
- package/dist/get.es.js +27 -3
- package/dist/get.es.min.js +2 -2
- package/dist/get.js +27 -3
- package/dist/get.min.js +2 -2
- package/dist/get.mjs +27 -3
- 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 +190 -42
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +190 -42
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +190 -42
- 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 +238 -83
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +238 -83
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +238 -83
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +238 -83
- 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 +4 -4
- package/dist/x/filterOut.es.min.js +2 -2
- package/dist/x/filterOut.js +4 -4
- package/dist/x/filterOut.min.js +2 -2
- package/dist/x/filterOut.mjs +4 -4
- package/dist/x/find.es.js +1 -3
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -3
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -3
- 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 +44 -28
- package/dist/x/flatten.es.min.js +2 -2
- package/dist/x/flatten.js +44 -28
- package/dist/x/flatten.min.js +2 -2
- package/dist/x/flatten.mjs +44 -28
- 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 +27 -23
- package/dist/x/maxBy.es.min.js +2 -2
- package/dist/x/maxBy.js +27 -23
- package/dist/x/maxBy.min.js +2 -2
- package/dist/x/maxBy.mjs +27 -23
- 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 +194 -44
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +194 -44
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +194 -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 +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/eq.js +2 -2
- package/es.js +238 -83
- package/every.js +2 -2
- package/filter.js +4 -4
- package/flatMap.js +61 -54
- package/forEach.js +33 -56
- package/get.js +49 -25
- package/gt.js +2 -2
- package/gte.js +2 -2
- package/index.js +238 -83
- package/lt.js +2 -2
- package/lte.js +2 -2
- package/map.js +115 -151
- package/monad/Mux.js +6 -4
- package/monad/PossiblePromise.js +6 -4
- package/monad/README.md +61 -40
- package/monad/Struct.js +6 -4
- package/not.js +1 -1
- package/omit.js +22 -19
- package/or.js +1 -1
- package/package.json +1 -1
- package/pick.js +14 -11
- package/pipe.js +18 -24
- package/reduce.js +1 -1
- package/set.js +17 -18
- package/some.js +2 -2
- package/switchCase.js +51 -43
- package/tap.js +17 -23
- package/transform.js +1 -1
- package/tryCatch.js +16 -24
- package/x/defaultsDeep.js +1 -1
- package/x/defaultsDeep.test.js +1 -1
- package/_internal/NextIteration.js +0 -12
- package/_internal/generatorFunctionFilter.js +0 -28
- package/_internal/iterationMap.js +0 -27
package/dist/x/pluck.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.10.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
@@ -39,25 +39,7 @@ const MappingIterator = (iterator, mapper) => ({
|
|
|
39
39
|
},
|
|
40
40
|
})
|
|
41
41
|
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
const symbolAsyncIterator = Symbol.asyncIterator
|
|
45
|
-
|
|
46
|
-
const MappingAsyncIterator = (asyncIterator, mapper) => ({
|
|
47
|
-
[symbolAsyncIterator]() {
|
|
48
|
-
return this
|
|
49
|
-
},
|
|
50
|
-
async next() {
|
|
51
|
-
const iteration = await asyncIterator.next()
|
|
52
|
-
if (iteration.done) {
|
|
53
|
-
return iteration
|
|
54
|
-
}
|
|
55
|
-
const mapped = mapper(iteration.value)
|
|
56
|
-
return isPromise(mapped)
|
|
57
|
-
? mapped.then(NextIteration)
|
|
58
|
-
: { value: mapped, done: false }
|
|
59
|
-
}
|
|
60
|
-
})
|
|
42
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
61
43
|
|
|
62
44
|
const __ = Symbol.for('placeholder')
|
|
63
45
|
|
|
@@ -81,6 +63,165 @@ const curry2 = function (baseFunc, arg0, arg1) {
|
|
|
81
63
|
: curry2ResolveArg1(baseFunc, arg0)
|
|
82
64
|
}
|
|
83
65
|
|
|
66
|
+
class LinkedList {
|
|
67
|
+
constructor() {
|
|
68
|
+
this.first = null
|
|
69
|
+
this.last = null
|
|
70
|
+
this.length = 0
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// popFirst() -> firstValue any
|
|
74
|
+
popFirst() {
|
|
75
|
+
const first = this.first
|
|
76
|
+
|
|
77
|
+
if (first == null) {
|
|
78
|
+
return undefined
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
if (first.next) {
|
|
82
|
+
this.first = first.next
|
|
83
|
+
} else {
|
|
84
|
+
this.first = null
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.length -= 1
|
|
88
|
+
|
|
89
|
+
return first.value
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// append(value any) -> undefined
|
|
93
|
+
append(value) {
|
|
94
|
+
const node = { value }
|
|
95
|
+
if (this.first == null) {
|
|
96
|
+
this.first = node
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (this.last == null) {
|
|
100
|
+
this.last = node
|
|
101
|
+
} else {
|
|
102
|
+
this.last.next = node
|
|
103
|
+
this.last = node
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
this.length += 1
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const symbolAsyncIterator = Symbol.asyncIterator
|
|
112
|
+
|
|
113
|
+
const arrayPush = function (array, value) {
|
|
114
|
+
array.push(value)
|
|
115
|
+
return array
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const sleep = time => new Promise(resolve => {
|
|
119
|
+
setTimeout(resolve, time)
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
const MappingAsyncIterator = (asyncIterator, mapper) => {
|
|
123
|
+
const buffer = new LinkedList()
|
|
124
|
+
|
|
125
|
+
let index = -1
|
|
126
|
+
let consumingAsyncIterator = false
|
|
127
|
+
let isAsyncIteratorDone = false
|
|
128
|
+
|
|
129
|
+
return {
|
|
130
|
+
[symbolAsyncIterator]() {
|
|
131
|
+
return this
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
135
|
+
async _consumeAsyncIterator() {
|
|
136
|
+
for await (const item of asyncIterator) {
|
|
137
|
+
index += 1
|
|
138
|
+
const mappedItem = mapper(item)
|
|
139
|
+
buffer.append(mappedItem)
|
|
140
|
+
}
|
|
141
|
+
isAsyncIteratorDone = true
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
async next() {
|
|
146
|
+
if (!consumingAsyncIterator) {
|
|
147
|
+
this._consumeAsyncIterator()
|
|
148
|
+
consumingAsyncIterator = true
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
while (!isAsyncIteratorDone) {
|
|
152
|
+
if (buffer.length > 0) {
|
|
153
|
+
let value = buffer.popFirst()
|
|
154
|
+
if (isPromise(value)) {
|
|
155
|
+
value = await value
|
|
156
|
+
}
|
|
157
|
+
return { value, done: false }
|
|
158
|
+
}
|
|
159
|
+
await sleep(10)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (buffer.length > 0) {
|
|
163
|
+
let value = buffer.popFirst()
|
|
164
|
+
if (isPromise(value)) {
|
|
165
|
+
value = await value
|
|
166
|
+
}
|
|
167
|
+
return { value, done: false }
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return { value: undefined, done: true }
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const SerialMappingAsyncIterator = (asyncIterator, mapper) => {
|
|
177
|
+
const buffer = new LinkedList()
|
|
178
|
+
|
|
179
|
+
let index = -1
|
|
180
|
+
let consumingAsyncIterator = false
|
|
181
|
+
let isAsyncIteratorDone = false
|
|
182
|
+
|
|
183
|
+
return {
|
|
184
|
+
[symbolAsyncIterator]() {
|
|
185
|
+
return this
|
|
186
|
+
},
|
|
187
|
+
|
|
188
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
189
|
+
async _consumeAsyncIterator() {
|
|
190
|
+
for await (const item of asyncIterator) {
|
|
191
|
+
index += 1
|
|
192
|
+
let mappedItem = mapper(item)
|
|
193
|
+
if (isPromise(mappedItem)) {
|
|
194
|
+
mappedItem = await mappedItem
|
|
195
|
+
}
|
|
196
|
+
buffer.append(mappedItem)
|
|
197
|
+
}
|
|
198
|
+
isAsyncIteratorDone = true
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
async next() {
|
|
203
|
+
if (!consumingAsyncIterator) {
|
|
204
|
+
this._consumeAsyncIterator()
|
|
205
|
+
consumingAsyncIterator = true
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
while (!isAsyncIteratorDone) {
|
|
209
|
+
if (buffer.length > 0) {
|
|
210
|
+
return { value: buffer.popFirst(), done: false }
|
|
211
|
+
}
|
|
212
|
+
await sleep(10)
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (buffer.length > 0) {
|
|
216
|
+
return { value: buffer.popFirst(), done: false }
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return { value: undefined, done: true }
|
|
220
|
+
},
|
|
221
|
+
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
84
225
|
// argument resolver for curry3
|
|
85
226
|
const curry3ResolveArg0 = (
|
|
86
227
|
baseFunc, arg1, arg2,
|
|
@@ -438,8 +579,6 @@ const tapSync = func => function tapping(...args) {
|
|
|
438
579
|
return args[0]
|
|
439
580
|
}
|
|
440
581
|
|
|
441
|
-
const promiseRace = Promise.race.bind(Promise)
|
|
442
|
-
|
|
443
582
|
const arrayMapPoolAsync = async function (
|
|
444
583
|
array, f, concurrencyLimit, result, index, promises,
|
|
445
584
|
) {
|
|
@@ -667,7 +806,7 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
667
806
|
curriedArgsIndex = -1,
|
|
668
807
|
numCurriedPlaceholders = 0
|
|
669
808
|
|
|
670
|
-
while (
|
|
809
|
+
while ((argsIndex += 1) < argsLength) {
|
|
671
810
|
const arg = args[argsIndex]
|
|
672
811
|
if (arg == __ && (curriedArgsIndex += 1) < curriedArgsLength) {
|
|
673
812
|
const curriedArg = curriedArgs[curriedArgsIndex]
|
|
@@ -691,7 +830,7 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
691
830
|
}
|
|
692
831
|
}
|
|
693
832
|
|
|
694
|
-
while (
|
|
833
|
+
while ((curriedArgsIndex += 1) < curriedArgsLength) {
|
|
695
834
|
const curriedArg = curriedArgs[curriedArgsIndex]
|
|
696
835
|
if (curriedArg == __) {
|
|
697
836
|
numCurriedPlaceholders += 1
|
|
@@ -721,7 +860,7 @@ const curryArity = function (arity, func, context, args) {
|
|
|
721
860
|
return _curryArity(arity, func, context, args)
|
|
722
861
|
}
|
|
723
862
|
let argsIndex = -1
|
|
724
|
-
while (
|
|
863
|
+
while ((argsIndex += 1) < argsLength) {
|
|
725
864
|
const arg = args[argsIndex]
|
|
726
865
|
if (arg == __) {
|
|
727
866
|
return _curryArity(arity, func, context, args)
|
|
@@ -784,9 +923,6 @@ const _map = function (value, f) {
|
|
|
784
923
|
if (typeof value.then == 'function') {
|
|
785
924
|
return value.then(f)
|
|
786
925
|
}
|
|
787
|
-
if (typeof value.map == 'function') {
|
|
788
|
-
return value.map(f)
|
|
789
|
-
}
|
|
790
926
|
if (typeof value == 'string' || value.constructor == String) {
|
|
791
927
|
return stringMap(value, f)
|
|
792
928
|
}
|
|
@@ -802,6 +938,9 @@ const _map = function (value, f) {
|
|
|
802
938
|
if (typeof value[symbolAsyncIterator] == 'function') {
|
|
803
939
|
return MappingAsyncIterator(value[symbolAsyncIterator](), f)
|
|
804
940
|
}
|
|
941
|
+
if (typeof value.map == 'function') {
|
|
942
|
+
return value.map(f)
|
|
943
|
+
}
|
|
805
944
|
if (value.constructor == Object) {
|
|
806
945
|
return objectMap(value, f)
|
|
807
946
|
}
|
|
@@ -840,27 +979,36 @@ map.entries = function mapEntries(arg0, arg1) {
|
|
|
840
979
|
: _mapEntries(arg0, arg1)
|
|
841
980
|
}
|
|
842
981
|
|
|
843
|
-
const _mapSeries = function (
|
|
844
|
-
if (isArray(
|
|
845
|
-
return arrayMapSeries(
|
|
982
|
+
const _mapSeries = function (functor, f) {
|
|
983
|
+
if (isArray(functor)) {
|
|
984
|
+
return arrayMapSeries(functor, f)
|
|
846
985
|
}
|
|
847
|
-
if (
|
|
848
|
-
throw new TypeError(`invalid
|
|
986
|
+
if (functor == null) {
|
|
987
|
+
throw new TypeError(`invalid functor ${functor}`)
|
|
849
988
|
}
|
|
850
989
|
|
|
851
|
-
if (typeof
|
|
852
|
-
return stringMapSeries(
|
|
990
|
+
if (typeof functor == 'string' || functor.constructor == String) {
|
|
991
|
+
return stringMapSeries(functor, f)
|
|
853
992
|
}
|
|
854
|
-
if (
|
|
855
|
-
return setMapSeries(
|
|
993
|
+
if (functor.constructor == Set) {
|
|
994
|
+
return setMapSeries(functor, f)
|
|
856
995
|
}
|
|
857
|
-
if (
|
|
858
|
-
return mapMapSeries(
|
|
996
|
+
if (functor.constructor == Map) {
|
|
997
|
+
return mapMapSeries(functor, f)
|
|
859
998
|
}
|
|
860
|
-
if (
|
|
861
|
-
return
|
|
999
|
+
if (typeof functor[symbolIterator] == 'function') {
|
|
1000
|
+
return MappingIterator(functor[symbolIterator](), f)
|
|
862
1001
|
}
|
|
863
|
-
|
|
1002
|
+
if (typeof functor[symbolAsyncIterator] == 'function') {
|
|
1003
|
+
return SerialMappingAsyncIterator(functor[symbolAsyncIterator](), f)
|
|
1004
|
+
}
|
|
1005
|
+
if (typeof functor.map == 'function') {
|
|
1006
|
+
return functor.map(f)
|
|
1007
|
+
}
|
|
1008
|
+
if (functor.constructor == Object) {
|
|
1009
|
+
return objectMapSeries(functor, f)
|
|
1010
|
+
}
|
|
1011
|
+
throw new TypeError(`invalid functor ${functor}`)
|
|
864
1012
|
}
|
|
865
1013
|
|
|
866
1014
|
map.series = function mapSeries(arg0, arg1) {
|
|
@@ -903,6 +1051,8 @@ map.pool = function mapPool(arg0, arg1, arg2) {
|
|
|
903
1051
|
: _mapPool(arg0, arg1, arg2)
|
|
904
1052
|
}
|
|
905
1053
|
|
|
1054
|
+
const funcApply = (func, args) => func(...args)
|
|
1055
|
+
|
|
906
1056
|
const memoizeCappedUnary = function (func, cap) {
|
|
907
1057
|
const cache = new Map(),
|
|
908
1058
|
memoized = function memoized(arg0) {
|
|
@@ -973,8 +1123,8 @@ const get = function (arg0, arg1, arg2) {
|
|
|
973
1123
|
if (typeof arg0 == 'string' || typeof arg0 == 'number' || isArray(arg0)) {
|
|
974
1124
|
return curry3(_get, __, arg0, arg1)
|
|
975
1125
|
}
|
|
976
|
-
if (isPromise(arg0)) {
|
|
977
|
-
return arg0.then(
|
|
1126
|
+
if (isPromise(arg0) || isPromise(arg2)) {
|
|
1127
|
+
return promiseAll([arg0, arg1, arg2]).then(curry2(funcApply, _get, __))
|
|
978
1128
|
}
|
|
979
1129
|
return _get(arg0, arg1, arg2)
|
|
980
1130
|
}
|
package/dist/x/pluck.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.10.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
6
6
|
* Rubico may be freely distributed under the CFOSS license.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
!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=>({
|
|
9
|
+
!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=Promise.race.bind(Promise),u=Symbol.for("placeholder"),i=function(n,t,e){return t==u?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)};class c{constructor(){this.first=null,this.last=null,this.length=0}popFirst(){const n=this.first;if(null!=n)return n.next?this.first=n.next:this.first=null,this.length-=1,n.value}append(n){const t={value:n};null==this.first&&(this.first=t),null==this.last||(this.last.next=t),this.last=t,this.length+=1}}const s=Symbol.asyncIterator,f=n=>new Promise((t=>{setTimeout(t,n)})),l=(t,e)=>{const r=new c;let o=-1,u=!1,i=!1;return{[s](){return this},async _consumeAsyncIterator(){for await(const n of t){o+=1;const t=e(n);r.append(t)}i=!0},async next(){for(u||(this._consumeAsyncIterator(),u=!0);!i;){if(r.length>0){let t=r.popFirst();return n(t)&&(t=await t),{value:t,done:!1}}await f(10)}if(r.length>0){let t=r.popFirst();return n(t)&&(t=await t),{value:t,done:!1}}return{value:void 0,done:!0}}}},a=(t,e)=>{const r=new c;let o=-1,u=!1,i=!1;return{[s](){return this},async _consumeAsyncIterator(){for await(const u of t){o+=1;let t=e(u);n(t)&&(t=await t),r.append(t)}i=!0},async next(){for(u||(this._consumeAsyncIterator(),u=!0);!i;){if(r.length>0)return{value:r.popFirst(),done:!1};await f(10)}return r.length>0?{value:r.popFirst(),done:!1}:{value:void 0,done:!0}}}},h=function(n,t,e,r){return t==u?((n,t,e)=>function(r){return n(r,t,e)})(n,e,r):e==u?((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=Array.isArray,d=Promise.all.bind(Promise),y=function(t,e){const r=t.length,o=Array(r);let u=-1,i=!1;for(;++u<r;){const r=e(t[u],u,t);n(r)&&(i=!0),o[u]=r}return i?d(o):o},w=(n,t,e)=>n[t](e),g=n=>function(){return n},v=function(n,t,e,r,o){return t==u?((n,t,e,r)=>function(o){return n(o,t,e,r)})(n,e,r,o):e==u?((n,t,e,r)=>function(o){return n(t,o,e,r)})(n,t,r,o):r==u?((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)},x=(n,t,e,r)=>n[t](e,r),m=t=>new Promise((t=>function(e){const r={};let o=0;for(const u in t){const i=t[u];n(i)?(o+=1,i.then((n=>function(t){r[n]=t,o-=1,0==o&&e(r)})(u))):r[u]=i}0==o&&e(r)})(t)),b=function(n,t,e){return n[t]=e,n},S=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},j=function(e,r){const o=e.length,i=Array(o);let c=-1;for(;++c<o;){const o=r(e[c],c);if(n(o))return o.then(t(h(b,i,c,u),v(S,e,r,u,c)));i[c]=o}return i},M=(n,t,e,r,o)=>function(){return n(t,e,r,o)},A=async function(t,e,r,o){for(const u in t){if(u in o)continue;let i=e(t[u]);n(i)&&(i=await i),r[u]=i}return r},T=(n,t,e,r)=>function(){return n(t,e,r)},z=function(n,t){return n.add(t),n},E=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},I=function(n,t,e){return n.set(t,e)},O=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},P=n=>function(...t){return n(...t),t[0]},F=async function(t,e,r,u,i,c){const s=t.length;for(;++i<s;){c.size>=r&&await o(c);const s=e(t[i]);if(n(s)){const n=s.then(P((()=>c.delete(n))));c.add(n),u[i]=n}else u[i]=s}return d(u)},$=function(t,e,r){const o=t.length,u=Array(o);let i=-1;for(;++i<o;){const o=r(t[i]);if(n(o)){const n=new Set,c=o.then(P((()=>n.delete(c))));return n.add(c),u[i]=c,F(t,r,e,u,i,n)}u[i]=o}return u},_=async function(t,e,r,u,i,c){let s=e.next();for(;!s.done;){c.size>=r&&await o(c);const f=u(s.value,s.value,t);if(n(f)){const n=f.then((t=>{c.delete(n),i.add(t)}));c.add(n)}else i.add(f);s=e.next()}return c.size>0&&await d(c),i},k=async function(t,e,r,u,i,c){let s=e.next();for(;!s.done;){c.size>=r&&await o(c);const f=s.value[0],l=u(s.value[1],f,t);if(n(l)){i.set(f,l);const n=l.then((t=>{c.delete(n),i.set(f,t)}));c.add(n)}else i.set(f,l);s=e.next()}return c.size>0&&await d(c),i},q=async function(t,e,r,u,i,c){for(const s in t){if(s in i)continue;c.size>=e&&await o(c);const f=r(t[s],s,t);if(n(f)){u[s]=f;const n=f.then((t=>{c.delete(n),u[s]=t}));c.add(n)}else u[s]=f}return c.size>0&&await d(c),u},B=function(t){if(p(t)){const e=t.length;let r=-1;for(;++r<e;){const e=t[r];if(n(e))return!0}return!1}for(const e in t){const r=t[e];if(n(r))return!0}return!1},C=(n,t,e)=>n.apply(t,e),D=(n,t,e,r)=>function(...o){const i=r.length,c=o.length,s=[];let f=-1,l=-1,a=0;for(;(f+=1)<i;){const i=r[f];if(i==u&&(l+=1)<c){const n=o[l];n==u&&(a+=1),s.push(n)}else s.push(i);if(s.length==n)return B(s)?0==a?d(s).then(h(C,t,e,u)):d(s).then(v(G,n,t,e,u)):0==a?t.apply(e,s):G(n,t,e,s)}for(;(l+=1)<c;){const r=o[l];if(r==u&&(a+=1),s.push(r),s.length==n)return B(s)?0==a?d(s).then(h(C,t,e,u)):d(s).then(v(G,n,t,e,u)):0==a?t.apply(e,s):G(n,t,e,s)}return B(s)?d(s).then(v(G,n,t,e,u)):G(n,t,e,s)},G=function(n,t,e,r){const o=r.length;if(o<n)return D(n,t,e,r);let i=-1;for(;(i+=1)<o;){if(r[i]==u)return D(n,t,e,r)}return t.apply(e,r)},H=n=>function([t,e]){return n(t,e)},J=(t,e,r)=>function(o,u){const i=t([u,o]);n(i)?r.push(i.then(H(G(3,I,this,[e])))):e.set(i[0],i[1])},K=function(t,o){return p(t)?y(t,o):null==t?t:"function"==typeof t.then?t.then(o):"string"==typeof t||t.constructor==String?function(t,e){const r=y(t,e);return n(r)?r.then(h(w,u,"join","")):r.join("")}(t,o):t.constructor==Set?function(t,e){const r=new Set,o=[];for(const i of t){const c=e(i,i,t);n(c)?o.push(c.then(h(w,r,"add",u))):r.add(c)}return 0==o.length?r:d(o).then(g(r))}(t,o):t.constructor==Map?function(t,e){const r=new Map,o=[];for(const[i,c]of t){const s=e(c,i,t);n(s)?o.push(s.then(v(x,r,"set",i,u))):r.set(i,s)}return 0==o.length?r:d(o).then(g(r))}(t,o):"function"==typeof t[e]?r(t[e](),o):"function"==typeof t[s]?l(t[s](),o):"function"==typeof t.map?t.map(o):t.constructor==Object?function(t,e){const r={};let o=!1;for(const u in t){const i=e(t[u],u,t);n(i)&&(o=!0),r[u]=i}return o?m(r):r}(t,o):o(t)},L=function(t,e){return null==e?i(K,u,t):n(t)?t.then(i(K,u,e)):K(t,e)},N=(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 i=e([u,t[u]]);n(i)?o.push(i.then(H(G(3,b,this,[r])))):r[i[0]]=i[1]}return 0==o.length?r:d(o).then(g(r))}(t,e);if(t.constructor==Map)return function(n,t){const e=new Map,r=[];return n.forEach(J(t,e,r)),0==r.length?e:d(r).then(g(e))}(t,e);throw new TypeError("value is not an Object or Map")};L.entries=function(t,e){return null==e?i(N,u,t):n(t)?t.then(i(N,u,e)):N(t,e)};const Q=function(o,c){if(p(o))return j(o,c);if(null==o)throw new TypeError(`invalid functor ${o}`);if("string"==typeof o||o.constructor==String)return function(t,e){const r=j(t,e);return n(r)?r.then(h(w,u,"join","")):r.join("")}(o,c);if(o.constructor==Set)return function(r,o){const c=new Set,s=r[e]();let f=s.next();for(;!f.done;){const e=o(f.value);if(n(e))return e.then(t(i(z,c,u),T(E,s,o,c)));c.add(e),f=s.next()}return c}(o,c);if(o.constructor==Map)return function(r,o){const i=new Map,c=r[e]();let s=c.next();for(;!s.done;){const e=s.value[0],r=o(s.value[1]);if(n(r))return r.then(t(h(I,i,e,u),T(O,c,o,i)));i.set(e,r),s=c.next()}return i}(o,c);if("function"==typeof o[e])return r(o[e](),c);if("function"==typeof o[s])return a(o[s](),c);if("function"==typeof o.map)return o.map(c);if(o.constructor==Object)return function(e,r){const o={},i={};for(const c in e){i[c]=!0;const s=r(e[c],c,e);if(n(s))return s.then(t(h(b,o,c,u),M(A,e,r,o,i)));o[c]=s}return o}(o,c);throw new TypeError(`invalid functor ${o}`)};L.series=function(t,e){return null==e?i(Q,u,t):n(t)?t.then(i(Q,u,e)):Q(t,e)};const R=function(t,r,o){if(p(t))return $(t,r,o);if(null==t)throw new TypeError(`invalid functor ${t}`);if("string"==typeof t||t.constructor==String)return function(t,e,r){const o=$(t,e,r);return n(o)?o.then(h(w,u,"join","")):o.join("")}(t,r,o);if(t.constructor==Set)return function(t,r,o){const u=new Set,i=t[e]();let c=i.next();for(;!c.done;){const e=o(c.value,c.value,t);if(n(e)){const n=new Set,c=e.then((t=>{n.delete(c),u.add(t)}));return n.add(c),_(t,i,r,o,u,n)}u.add(e),c=i.next()}return u}(t,r,o);if(t.constructor==Map)return function(t,r,o){const u=new Map,i=t[e]();let c=i.next();for(;!c.done;){const e=c.value[0],s=o(c.value[1],e,t);if(n(s)){const n=new Set;u.set(e,s);const c=s.then((t=>{n.delete(c),u.set(e,t)}));return n.add(c),k(t,i,r,o,u,n)}u.set(e,s),c=i.next()}return u}(t,r,o);if(t.constructor==Object)return function(t,e,r){const o={},u={};for(const i in t){u[i]=!0;const c=r(t[i],i,t);if(n(c)){const n=new Set;o[i]=c;const s=c.then((t=>{n.delete(s),o[i]=t}));return n.add(s),q(t,e,r,o,u,n)}o[i]=c}return o}(t,r,o);throw new TypeError(`invalid functor ${t}`)};L.pool=function(t,e,r){return null==r?h(R,u,t,e):n(t)?t.then(h(R,u,e,r)):R(t,e,r)};const U=(n,t)=>n(...t),V=/[.|[|\]]+/,W=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(V):e?n.slice(1).split(V):r?n.slice(0,t).split(V):n.split(V)}),500),X=function(n,t){const e=(n=>p(n)?n:"string"==typeof n?W(n):[n])(t),r=e.length;let o=-1,u=n;for(;++o<r;)if(u=u[e[o]],null==u)return;return u},Y=function(n,t,e){const r=null==n?void 0:X(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||p(o)?h(Y,u,o,c):n(o)||n(s)?d([o,c,s]).then(i(U,Y,u)):Y(o,c,s);var o,c,s;return 0==t.length?L(r):L(t[0],r)}}());
|