rubico 2.11.0 → 2.13.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 +16 -20
- package/Transducer.js +87 -72
- package/__.js +3 -3
- package/_internal/functionArrayAllSeries.js +4 -3
- package/_internal/functionObjectAllSeries.js +65 -0
- package/_internal/genericTransform.js +0 -1
- package/all.js +36 -16
- package/always.js +4 -4
- package/and.js +34 -26
- package/assign.js +5 -5
- package/compose.js +7 -6
- package/curry.js +48 -28
- 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 +112 -8
- package/dist/all.es.min.js +2 -2
- package/dist/all.js +112 -8
- package/dist/all.min.js +2 -2
- package/dist/all.mjs +112 -8
- 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 +113 -19
- package/dist/filter.es.min.js +2 -2
- package/dist/filter.js +113 -19
- package/dist/filter.min.js +2 -2
- package/dist/filter.mjs +113 -19
- 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 +1 -1
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +1 -1
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +1 -1
- 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 +1 -1
- package/dist/map.es.min.js +1 -1
- package/dist/map.js +1 -1
- package/dist/map.min.js +1 -1
- package/dist/map.mjs +1 -1
- 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 +168 -79
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +168 -79
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +168 -79
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +168 -79
- 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 -3
- package/dist/transform.es.min.js +2 -2
- package/dist/transform.js +1 -3
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -3
- 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 +113 -19
- package/dist/x/filterOut.es.min.js +2 -2
- package/dist/x/filterOut.js +113 -19
- package/dist/x/filterOut.min.js +2 -2
- package/dist/x/filterOut.mjs +113 -19
- 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 +1 -1
- package/dist/x/pluck.es.min.js +1 -1
- package/dist/x/pluck.js +1 -1
- package/dist/x/pluck.min.js +1 -1
- package/dist/x/pluck.mjs +1 -1
- 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 +29 -30
- package/es.js +168 -79
- package/every.js +16 -22
- package/filter.js +41 -78
- package/flatMap.js +16 -16
- package/forEach.js +14 -14
- package/get.js +3 -3
- package/gt.js +18 -25
- package/gte.js +22 -29
- package/index.js +168 -79
- package/lt.js +33 -31
- package/lte.js +24 -31
- package/map.js +43 -46
- package/not.js +12 -17
- package/or.js +34 -26
- package/package.json +1 -1
- package/pipe.js +6 -6
- package/reduce.js +62 -69
- package/some.js +13 -36
- package/switchCase.js +9 -9
- package/tap.js +7 -12
- package/thunkify.js +42 -12
- package/transform.js +62 -61
- package/tryCatch.js +4 -7
- package/_internal/add.js +0 -12
package/dist/filter.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
@@ -46,30 +46,124 @@ const FilteringIterator = (iterator, predicate) => ({
|
|
|
46
46
|
},
|
|
47
47
|
})
|
|
48
48
|
|
|
49
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
50
|
+
|
|
49
51
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
50
52
|
|
|
53
|
+
class LinkedList {
|
|
54
|
+
constructor() {
|
|
55
|
+
this.first = null
|
|
56
|
+
this.last = null
|
|
57
|
+
this.length = 0
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// popFirst() -> firstValue any
|
|
61
|
+
popFirst() {
|
|
62
|
+
const first = this.first
|
|
63
|
+
|
|
64
|
+
if (first == null) {
|
|
65
|
+
return undefined
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (first.next) {
|
|
69
|
+
this.first = first.next
|
|
70
|
+
} else {
|
|
71
|
+
this.first = null
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.length -= 1
|
|
75
|
+
|
|
76
|
+
return first.value
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// append(value any) -> undefined
|
|
80
|
+
append(value) {
|
|
81
|
+
const node = { value }
|
|
82
|
+
if (this.first == null) {
|
|
83
|
+
this.first = node
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (this.last == null) {
|
|
87
|
+
this.last = node
|
|
88
|
+
} else {
|
|
89
|
+
this.last.next = node
|
|
90
|
+
this.last = node
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
this.length += 1
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
51
98
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
52
99
|
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
100
|
+
const arrayPush = function (array, value) {
|
|
101
|
+
array.push(value)
|
|
102
|
+
return array
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const sleep = time => new Promise(resolve => {
|
|
106
|
+
setTimeout(resolve, time)
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
const FilteringAsyncIterator = (asyncIterator, predicate) => {
|
|
110
|
+
const buffer = new LinkedList()
|
|
111
|
+
|
|
112
|
+
let index = -1
|
|
113
|
+
let consumingAsyncIterator = false
|
|
114
|
+
let isAsyncIteratorDone = false
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
[symbolAsyncIterator]() {
|
|
118
|
+
return this
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
122
|
+
async _consumeAsyncIterator() {
|
|
123
|
+
for await (const item of asyncIterator) {
|
|
124
|
+
index += 1
|
|
125
|
+
const booleanResult = predicate(item)
|
|
126
|
+
buffer.append([booleanResult, item])
|
|
127
|
+
}
|
|
128
|
+
isAsyncIteratorDone = true
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
async next() {
|
|
133
|
+
if (!consumingAsyncIterator) {
|
|
134
|
+
this._consumeAsyncIterator()
|
|
135
|
+
consumingAsyncIterator = true
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
while (!isAsyncIteratorDone) {
|
|
139
|
+
if (buffer.length > 0) {
|
|
140
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
141
|
+
if (isPromise(booleanResult)) {
|
|
142
|
+
booleanResult = await booleanResult
|
|
143
|
+
}
|
|
144
|
+
if (booleanResult) {
|
|
145
|
+
return { value: item, done: false }
|
|
146
|
+
}
|
|
147
|
+
continue
|
|
67
148
|
}
|
|
149
|
+
await sleep(10)
|
|
68
150
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
151
|
+
|
|
152
|
+
while (buffer.length > 0) {
|
|
153
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
154
|
+
if (isPromise(booleanResult)) {
|
|
155
|
+
booleanResult = await booleanResult
|
|
156
|
+
}
|
|
157
|
+
if (booleanResult) {
|
|
158
|
+
return { value: item, done: false }
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return { value: undefined, done: true }
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
}
|
|
166
|
+
}
|
|
73
167
|
|
|
74
168
|
const isArray = Array.isArray
|
|
75
169
|
|
package/dist/filter.es.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.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
|
-
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(n){return r(n,t)},curry2ResolveArg1=(r,t)=>function(n){return r(t,n)},curry2=function(r,t,n){return t==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,t)},symbolIterator=Symbol.iterator,FilteringIterator=(r,t)=>({[symbolIterator](){return this},next(){let n=r.next();for(;!n.done;){const{value:e}=n;if(t(e))return{value:e,done:!1};n=r.next()}return n}}),isPromise=r=>null!=r&&"function"==typeof r.then,symbolAsyncIterator=Symbol.asyncIterator,
|
|
8
|
+
const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,t)=>function(n){return r(n,t)},curry2ResolveArg1=(r,t)=>function(n){return r(t,n)},curry2=function(r,t,n){return t==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,t)},symbolIterator=Symbol.iterator,FilteringIterator=(r,t)=>({[symbolIterator](){return this},next(){let n=r.next();for(;!n.done;){const{value:e}=n;if(t(e))return{value:e,done:!1};n=r.next()}return n}}),promiseRace=Promise.race.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then;class LinkedList{constructor(){this.first=null,this.last=null,this.length=0}popFirst(){const r=this.first;if(null!=r)return r.next?this.first=r.next:this.first=null,this.length-=1,r.value}append(r){const t={value:r};null==this.first&&(this.first=t),null==this.last||(this.last.next=t),this.last=t,this.length+=1}}const symbolAsyncIterator=Symbol.asyncIterator,arrayPush=function(r,t){return r.push(t),r},sleep=r=>new Promise((t=>{setTimeout(t,r)})),FilteringAsyncIterator=(r,t)=>{const n=new LinkedList;let e=-1,o=!1,i=!1;return{[symbolAsyncIterator](){return this},async _consumeAsyncIterator(){for await(const o of r){e+=1;const r=t(o);n.append([r,o])}i=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!i;)if(n.length>0){let[r,t]=n.popFirst();if(isPromise(r)&&(r=await r),r)return{value:t,done:!1}}else await sleep(10);for(;n.length>0;){let[r,t]=n.popFirst();if(isPromise(r)&&(r=await r),r)return{value:t,done:!1}}return{value:void 0,done:!0}}}},isArray=Array.isArray,curry4ResolveArg0=(r,t,n,e)=>function(o){return r(o,t,n,e)},curry4ResolveArg1=(r,t,n,e)=>function(o){return r(t,o,n,e)},curry4ResolveArg2=(r,t,n,e)=>function(o){return r(t,n,o,e)},curry4ResolveArg3=(r,t,n,e)=>function(o){return r(t,n,e,o)},curry4=function(r,t,n,e,o){return t==__?curry4ResolveArg0(r,n,e,o):n==__?curry4ResolveArg1(r,t,e,o):e==__?curry4ResolveArg2(r,t,n,o):curry4ResolveArg3(r,t,n,e)},promiseAll=Promise.all.bind(Promise),arrayExtendMap=function(r,t,n,e){const o=t.length;let i=r.length-1;for(;++e<o;)r[++i]=n(t[e],e,r);return r},arrayFilterByConditions=function(r,t,n,e){const o=r.length;let i=-1;for(;++n<o;)e[++i]&&t.push(r[n]);return t},arrayFilter=function(r,t){const n=r.length,e=[];let o=-1,i=-1;for(;++o<n;){const n=r[o],s=t(n,o,r);if(isPromise(s))return promiseAll(arrayExtendMap([s],r,t,o)).then(curry4(arrayFilterByConditions,r,e,o-1,__));s&&(e[++i]=n)}return e},curry3ResolveArg0=(r,t,n)=>function(e){return r(e,t,n)},curry3ResolveArg1=(r,t,n)=>function(e){return r(t,e,n)},curry3ResolveArg2=(r,t,n)=>function(e){return r(t,n,e)},curry3=function(r,t,n,e){return t==__?curry3ResolveArg0(r,n,e):n==__?curry3ResolveArg1(r,t,e):curry3ResolveArg2(r,t,n)},callPropUnary=(r,t,n)=>r[t](n),stringFilter=function(r,t){const n=arrayFilter(r,t);return isPromise(n)?n.then(curry3(callPropUnary,__,"join","")):n.join("")},always=r=>function(){return r},thunkConditional=(r,t,n)=>r?t():n(),thunkify1=(r,t)=>function(){return r(t)},noop=function(){},setFilter=function(r,t){const n=new Set,e=n.add.bind(n),o=[];for(const i of r){const s=t(i,i,r);isPromise(s)?o.push(s.then(curry3(thunkConditional,__,thunkify1(e,i),noop))):s&&n.add(i)}return 0==o.length?n:promiseAll(o).then(always(n))},thunkify4=(r,t,n,e,o)=>function(){return r(t,n,e,o)},callPropBinary=(r,t,n,e)=>r[t](n,e),mapFilter=function(r,t){const n=new Map,e=[];for(const[o,i]of r){const s=t(i,o,r);isPromise(s)?e.push(s.then(curry3(thunkConditional,__,thunkify4(callPropBinary,n,"set",o,i),noop))):s&&n.set(o,i)}return 0==e.length?n:promiseAll(e).then(always(n))},objectSetIf=function(r,t,n,e){e&&(r[t]=n)},objectFilter=function(r,t){const n={},e=[];for(const o in r){const i=r[o],s=t(i,o,r);isPromise(s)?e.push(s.then(curry4(objectSetIf,n,o,r[o],__))):s&&(n[o]=i)}return 0==e.length?n:promiseAll(e).then(always(n))},_filter=function(r,t){return isArray(r)?arrayFilter(r,t):null==r?r:"string"==typeof r||r.constructor==String?stringFilter(r,t):r.constructor==Set?setFilter(r,t):r.constructor==Map?mapFilter(r,t):"function"==typeof r[symbolIterator]?FilteringIterator(r[symbolIterator](),t):"function"==typeof r[symbolAsyncIterator]?FilteringAsyncIterator(r[symbolAsyncIterator](),t):"function"==typeof r.filter?r.filter(t):r.constructor==Object?objectFilter(r,t):r},filter=function(r,t){return"function"==typeof r?curry2(_filter,__,r):isPromise(r)?r.then(curry2(_filter,__,t)):_filter(r,t)};export default filter;
|
package/dist/filter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
@@ -52,30 +52,124 @@ const FilteringIterator = (iterator, predicate) => ({
|
|
|
52
52
|
},
|
|
53
53
|
})
|
|
54
54
|
|
|
55
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
56
|
+
|
|
55
57
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
56
58
|
|
|
59
|
+
class LinkedList {
|
|
60
|
+
constructor() {
|
|
61
|
+
this.first = null
|
|
62
|
+
this.last = null
|
|
63
|
+
this.length = 0
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// popFirst() -> firstValue any
|
|
67
|
+
popFirst() {
|
|
68
|
+
const first = this.first
|
|
69
|
+
|
|
70
|
+
if (first == null) {
|
|
71
|
+
return undefined
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (first.next) {
|
|
75
|
+
this.first = first.next
|
|
76
|
+
} else {
|
|
77
|
+
this.first = null
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this.length -= 1
|
|
81
|
+
|
|
82
|
+
return first.value
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// append(value any) -> undefined
|
|
86
|
+
append(value) {
|
|
87
|
+
const node = { value }
|
|
88
|
+
if (this.first == null) {
|
|
89
|
+
this.first = node
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (this.last == null) {
|
|
93
|
+
this.last = node
|
|
94
|
+
} else {
|
|
95
|
+
this.last.next = node
|
|
96
|
+
this.last = node
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
this.length += 1
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
}
|
|
103
|
+
|
|
57
104
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
58
105
|
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
106
|
+
const arrayPush = function (array, value) {
|
|
107
|
+
array.push(value)
|
|
108
|
+
return array
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
const sleep = time => new Promise(resolve => {
|
|
112
|
+
setTimeout(resolve, time)
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
const FilteringAsyncIterator = (asyncIterator, predicate) => {
|
|
116
|
+
const buffer = new LinkedList()
|
|
117
|
+
|
|
118
|
+
let index = -1
|
|
119
|
+
let consumingAsyncIterator = false
|
|
120
|
+
let isAsyncIteratorDone = false
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
[symbolAsyncIterator]() {
|
|
124
|
+
return this
|
|
125
|
+
},
|
|
126
|
+
|
|
127
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
128
|
+
async _consumeAsyncIterator() {
|
|
129
|
+
for await (const item of asyncIterator) {
|
|
130
|
+
index += 1
|
|
131
|
+
const booleanResult = predicate(item)
|
|
132
|
+
buffer.append([booleanResult, item])
|
|
133
|
+
}
|
|
134
|
+
isAsyncIteratorDone = true
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
async next() {
|
|
139
|
+
if (!consumingAsyncIterator) {
|
|
140
|
+
this._consumeAsyncIterator()
|
|
141
|
+
consumingAsyncIterator = true
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
while (!isAsyncIteratorDone) {
|
|
145
|
+
if (buffer.length > 0) {
|
|
146
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
147
|
+
if (isPromise(booleanResult)) {
|
|
148
|
+
booleanResult = await booleanResult
|
|
149
|
+
}
|
|
150
|
+
if (booleanResult) {
|
|
151
|
+
return { value: item, done: false }
|
|
152
|
+
}
|
|
153
|
+
continue
|
|
73
154
|
}
|
|
155
|
+
await sleep(10)
|
|
74
156
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
157
|
+
|
|
158
|
+
while (buffer.length > 0) {
|
|
159
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
160
|
+
if (isPromise(booleanResult)) {
|
|
161
|
+
booleanResult = await booleanResult
|
|
162
|
+
}
|
|
163
|
+
if (booleanResult) {
|
|
164
|
+
return { value: item, done: false }
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return { value: undefined, done: true }
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
}
|
|
79
173
|
|
|
80
174
|
const isArray = Array.isArray
|
|
81
175
|
|
package/dist/filter.min.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.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
|
|
9
|
+
!function(t,n){"object"==typeof module?module.exports=n:"function"==typeof define?define((()=>n)):t.filter=n}("object"==typeof globalThis?globalThis:this,function(){"use strict";const t=Symbol.for("placeholder"),n=function(n,e,r){return e==t?((t,n)=>function(e){return t(e,n)})(n,r):((t,n)=>function(e){return t(n,e)})(n,e)},e=Symbol.iterator,r=(t,n)=>({[e](){return this},next(){let e=t.next();for(;!e.done;){const{value:r}=e;if(n(r))return{value:r,done:!1};e=t.next()}return e}}),o=(Promise.race.bind(Promise),t=>null!=t&&"function"==typeof t.then);class u{constructor(){this.first=null,this.last=null,this.length=0}popFirst(){const t=this.first;if(null!=t)return t.next?this.first=t.next:this.first=null,this.length-=1,t.value}append(t){const n={value:t};null==this.first&&(this.first=n),null==this.last||(this.last.next=n),this.last=n,this.length+=1}}const i=Symbol.asyncIterator,s=t=>new Promise((n=>{setTimeout(n,t)})),c=(t,n)=>{const e=new u;let r=-1,c=!1,f=!1;return{[i](){return this},async _consumeAsyncIterator(){for await(const o of t){r+=1;const t=n(o);e.append([t,o])}f=!0},async next(){for(c||(this._consumeAsyncIterator(),c=!0);!f;)if(e.length>0){let[t,n]=e.popFirst();if(o(t)&&(t=await t),t)return{value:n,done:!1}}else await s(10);for(;e.length>0;){let[t,n]=e.popFirst();if(o(t)&&(t=await t),t)return{value:n,done:!1}}return{value:void 0,done:!0}}}},f=Array.isArray,l=function(n,e,r,o,u){return e==t?((t,n,e,r)=>function(o){return t(o,n,e,r)})(n,r,o,u):r==t?((t,n,e,r)=>function(o){return t(n,o,e,r)})(n,e,o,u):o==t?((t,n,e,r)=>function(o){return t(n,e,o,r)})(n,e,r,u):((t,n,e,r)=>function(o){return t(n,e,r,o)})(n,e,r,o)},h=Promise.all.bind(Promise),a=function(t,n,e,r){const o=n.length;let u=t.length-1;for(;++r<o;)t[++u]=e(n[r],r,t);return t},p=function(t,n,e,r){const o=t.length;let u=-1;for(;++e<o;)r[++u]&&n.push(t[e]);return n},d=function(n,e){const r=n.length,u=[];let i=-1,s=-1;for(;++i<r;){const r=n[i],c=e(r,i,n);if(o(c))return h(a([c],n,e,i)).then(l(p,n,u,i-1,t));c&&(u[++s]=r)}return u},y=function(n,e,r,o){return e==t?((t,n,e)=>function(r){return t(r,n,e)})(n,r,o):r==t?((t,n,e)=>function(r){return t(n,r,e)})(n,e,o):((t,n,e)=>function(r){return t(n,e,r)})(n,e,r)},g=(t,n,e)=>t[n](e),m=t=>function(){return t},b=(t,n,e)=>t?n():e(),v=(t,n)=>function(){return t(n)},w=function(){},x=(t,n,e,r,o)=>function(){return t(n,e,r,o)},S=(t,n,e,r)=>t[n](e,r),j=function(t,n,e,r){r&&(t[n]=e)},P=function(n,u){return f(n)?d(n,u):null==n?n:"string"==typeof n||n.constructor==String?function(n,e){const r=d(n,e);return o(r)?r.then(y(g,t,"join","")):r.join("")}(n,u):n.constructor==Set?function(n,e){const r=new Set,u=r.add.bind(r),i=[];for(const s of n){const c=e(s,s,n);o(c)?i.push(c.then(y(b,t,v(u,s),w))):c&&r.add(s)}return 0==i.length?r:h(i).then(m(r))}(n,u):n.constructor==Map?function(n,e){const r=new Map,u=[];for(const[i,s]of n){const c=e(s,i,n);o(c)?u.push(c.then(y(b,t,x(S,r,"set",i,s),w))):c&&r.set(i,s)}return 0==u.length?r:h(u).then(m(r))}(n,u):"function"==typeof n[e]?r(n[e](),u):"function"==typeof n[i]?c(n[i](),u):"function"==typeof n.filter?n.filter(u):n.constructor==Object?function(n,e){const r={},u=[];for(const i in n){const s=n[i],c=e(s,i,n);o(c)?u.push(c.then(l(j,r,i,n[i],t))):c&&(r[i]=s)}return 0==u.length?r:h(u).then(m(r))}(n,u):n};return function(e,r){return"function"==typeof e?n(P,t,e):o(e)?e.then(n(P,t,r)):P(e,r)}}());
|
package/dist/filter.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Rubico v2.
|
|
2
|
+
* Rubico v2.13.0
|
|
3
3
|
* https://rubico.land/
|
|
4
4
|
*
|
|
5
5
|
* © Richard Yufei Tong, King of Software
|
|
@@ -46,30 +46,124 @@ const FilteringIterator = (iterator, predicate) => ({
|
|
|
46
46
|
},
|
|
47
47
|
})
|
|
48
48
|
|
|
49
|
+
const promiseRace = Promise.race.bind(Promise)
|
|
50
|
+
|
|
49
51
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
50
52
|
|
|
53
|
+
class LinkedList {
|
|
54
|
+
constructor() {
|
|
55
|
+
this.first = null
|
|
56
|
+
this.last = null
|
|
57
|
+
this.length = 0
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// popFirst() -> firstValue any
|
|
61
|
+
popFirst() {
|
|
62
|
+
const first = this.first
|
|
63
|
+
|
|
64
|
+
if (first == null) {
|
|
65
|
+
return undefined
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (first.next) {
|
|
69
|
+
this.first = first.next
|
|
70
|
+
} else {
|
|
71
|
+
this.first = null
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
this.length -= 1
|
|
75
|
+
|
|
76
|
+
return first.value
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// append(value any) -> undefined
|
|
80
|
+
append(value) {
|
|
81
|
+
const node = { value }
|
|
82
|
+
if (this.first == null) {
|
|
83
|
+
this.first = node
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (this.last == null) {
|
|
87
|
+
this.last = node
|
|
88
|
+
} else {
|
|
89
|
+
this.last.next = node
|
|
90
|
+
this.last = node
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
this.length += 1
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
51
98
|
const symbolAsyncIterator = Symbol.asyncIterator
|
|
52
99
|
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
100
|
+
const arrayPush = function (array, value) {
|
|
101
|
+
array.push(value)
|
|
102
|
+
return array
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const sleep = time => new Promise(resolve => {
|
|
106
|
+
setTimeout(resolve, time)
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
const FilteringAsyncIterator = (asyncIterator, predicate) => {
|
|
110
|
+
const buffer = new LinkedList()
|
|
111
|
+
|
|
112
|
+
let index = -1
|
|
113
|
+
let consumingAsyncIterator = false
|
|
114
|
+
let isAsyncIteratorDone = false
|
|
115
|
+
|
|
116
|
+
return {
|
|
117
|
+
[symbolAsyncIterator]() {
|
|
118
|
+
return this
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
122
|
+
async _consumeAsyncIterator() {
|
|
123
|
+
for await (const item of asyncIterator) {
|
|
124
|
+
index += 1
|
|
125
|
+
const booleanResult = predicate(item)
|
|
126
|
+
buffer.append([booleanResult, item])
|
|
127
|
+
}
|
|
128
|
+
isAsyncIteratorDone = true
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
async next() {
|
|
133
|
+
if (!consumingAsyncIterator) {
|
|
134
|
+
this._consumeAsyncIterator()
|
|
135
|
+
consumingAsyncIterator = true
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
while (!isAsyncIteratorDone) {
|
|
139
|
+
if (buffer.length > 0) {
|
|
140
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
141
|
+
if (isPromise(booleanResult)) {
|
|
142
|
+
booleanResult = await booleanResult
|
|
143
|
+
}
|
|
144
|
+
if (booleanResult) {
|
|
145
|
+
return { value: item, done: false }
|
|
146
|
+
}
|
|
147
|
+
continue
|
|
67
148
|
}
|
|
149
|
+
await sleep(10)
|
|
68
150
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
151
|
+
|
|
152
|
+
while (buffer.length > 0) {
|
|
153
|
+
let [booleanResult, item] = buffer.popFirst()
|
|
154
|
+
if (isPromise(booleanResult)) {
|
|
155
|
+
booleanResult = await booleanResult
|
|
156
|
+
}
|
|
157
|
+
if (booleanResult) {
|
|
158
|
+
return { value: item, done: false }
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return { value: undefined, done: true }
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
}
|
|
166
|
+
}
|
|
73
167
|
|
|
74
168
|
const isArray = Array.isArray
|
|
75
169
|
|
package/dist/flatMap.es.js
CHANGED
package/dist/flatMap.es.min.js
CHANGED
package/dist/flatMap.js
CHANGED
package/dist/flatMap.min.js
CHANGED
package/dist/flatMap.mjs
CHANGED
package/dist/forEach.es.js
CHANGED
package/dist/forEach.es.min.js
CHANGED
package/dist/forEach.js
CHANGED
package/dist/forEach.min.js
CHANGED
package/dist/forEach.mjs
CHANGED
package/dist/get.es.js
CHANGED
package/dist/get.es.min.js
CHANGED
package/dist/get.js
CHANGED
package/dist/get.min.js
CHANGED
package/dist/get.mjs
CHANGED
package/dist/gt.es.js
CHANGED
package/dist/gt.es.min.js
CHANGED
package/dist/gt.js
CHANGED
package/dist/gt.min.js
CHANGED