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/x/append.min.js
CHANGED
package/dist/x/append.mjs
CHANGED
package/dist/x/callProp.es.js
CHANGED
package/dist/x/callProp.js
CHANGED
package/dist/x/callProp.min.js
CHANGED
package/dist/x/callProp.mjs
CHANGED
package/dist/x/defaultsDeep.js
CHANGED
package/dist/x/defaultsDeep.mjs
CHANGED
package/dist/x/differenceWith.js
CHANGED
package/dist/x/filterOut.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
|
|
|
@@ -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,s=!1;return{[symbolAsyncIterator](){return this},async _consumeAsyncIterator(){for await(const o of r){e+=1;const r=t(o);n.append([r,o])}s=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!s;)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 s=r.length-1;for(;++e<o;)r[++s]=n(t[e],e,r);return r},arrayFilterByConditions=function(r,t,n,e){const o=r.length;let s=-1;for(;++n<o;)e[++s]&&t.push(r[n]);return t},arrayFilter=function(r,t){const n=r.length,e=[];let o=-1,s=-1;for(;++o<n;){const n=r[o],i=t(n,o,r);if(isPromise(i))return promiseAll(arrayExtendMap([i],r,t,o)).then(curry4(arrayFilterByConditions,r,e,o-1,__));i&&(e[++s]=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 s of r){const i=t(s,s,r);isPromise(i)?o.push(i.then(curry3(thunkConditional,__,thunkify1(e,s),noop))):i&&n.add(s)}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,s]of r){const i=t(s,o,r);isPromise(i)?e.push(i.then(curry3(thunkConditional,__,thunkify4(callPropBinary,n,"set",o,s),noop))):i&&n.set(o,s)}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 s=r[o],i=t(s,o,r);isPromise(i)?e.push(i.then(curry4(objectSetIf,n,o,r[o],__))):i&&(n[o]=s)}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)},areAnyValuesPromises=function(r){if(isArray(r)){const t=r.length;let n=-1;for(;++n<t;){const t=r[n];if(isPromise(t))return!0}return!1}for(const t in r){const n=r[t];if(isPromise(n))return!0}return!1},curryArgs2ResolveArgs0=(r,t,n)=>function(...n){return r(n,t)},curryArgs2ResolveArgs1=(r,t,n)=>function(...n){return r(t,n)},curryArgs2=function(r,t,n){return t==__?curryArgs2ResolveArgs0(r,n):curryArgs2ResolveArgs1(r,t)},negate=r=>!r,_not=function(r,t){const n=t(...r);return isPromise(n)?n.then(negate):!n},not=function(...r){const t=r.pop();return"function"==typeof t?0==r.length?curryArgs2(_not,__,t):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_not,__,t)):_not(r,t):isPromise(t)?t.then(negate):!t},filterOut=r=>filter(not(r));export default filterOut;
|
package/dist/x/filterOut.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/x/filterOut.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.filterOut=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},A=t=>!t,F=function(t,n){const e=n(...t);return o(e)?e.then(A):!e},I=function(...e){const r=e.pop();return"function"==typeof r?0==e.length?(u=F,s=r,(i=t)==t?((t,n)=>function(...e){return t(e,n)})(u,s):((t,n)=>function(...e){return t(n,e)})(u,i)):function(t){if(f(t)){const n=t.length;let e=-1;for(;++e<n;){const n=t[e];if(o(n))return!0}return!1}for(const n in t){const e=t[n];if(o(e))return!0}return!1}(e)?h(e).then(n(F,t,r)):F(e,r):o(r)?r.then(A):!r;var u,i,s};return e=>{return"function"==typeof(r=I(e))?n(P,t,r):o(r)?r.then(n(P,t,u)):P(r,u);var r,u}}());
|
package/dist/x/filterOut.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/x/find.es.js
CHANGED