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/filter.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
|
|
@@ -303,15 +303,15 @@ const _filter = function (value, predicate) {
|
|
|
303
303
|
if (value.constructor == Map) {
|
|
304
304
|
return mapFilter(value, predicate)
|
|
305
305
|
}
|
|
306
|
-
if (typeof value.filter == 'function') {
|
|
307
|
-
return value.filter(predicate)
|
|
308
|
-
}
|
|
309
306
|
if (typeof value[symbolIterator] == 'function') {
|
|
310
307
|
return FilteringIterator(value[symbolIterator](), predicate)
|
|
311
308
|
}
|
|
312
309
|
if (typeof value[symbolAsyncIterator] == 'function') {
|
|
313
310
|
return FilteringAsyncIterator(value[symbolAsyncIterator](), predicate)
|
|
314
311
|
}
|
|
312
|
+
if (typeof value.filter == 'function') {
|
|
313
|
+
return value.filter(predicate)
|
|
314
|
+
}
|
|
315
315
|
if (value.constructor == Object) {
|
|
316
316
|
return objectFilter(value, predicate)
|
|
317
317
|
}
|
package/dist/filter.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.filter=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=function(t,e,o){return e==n?((n,t)=>function(e){return n(e,t)})(t,o):((n,t)=>function(e){return n(t,e)})(t,e)},e=Symbol.iterator,o=(n,t)=>({[e](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),r=n=>null!=n&&"function"==typeof n.then,u=Symbol.asyncIterator,c=(n,t)=>({isAsyncIteratorDone:!1,[u](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:e,done:o}=await n.next();if(o)this.isAsyncIteratorDone=!0;else{const n=t(e);if(r(n)?await n:n)return{value:e,done:!1}}}return{value:void 0,done:!0}}}),i=Array.isArray,f=function(t,e,o,r,u){return e==n?((n,t,e,o)=>function(r){return n(r,t,e,o)})(t,o,r,u):o==n?((n,t,e,o)=>function(r){return n(t,r,e,o)})(t,e,r,u):r==n?((n,t,e,o)=>function(r){return n(t,e,r,o)})(t,e,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(t,e,o,r)},s=Promise.all.bind(Promise),l=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},h=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},a=function(t,e){const o=t.length,u=[];let c=-1,i=-1;for(;++c<o;){const o=t[c],a=e(o,c,t);if(r(a))return s(l([a],t,e,c)).then(f(h,t,u,c-1,n));a&&(u[++i]=o)}return u},y=function(t,e,o,r){return e==n?((n,t,e)=>function(o){return n(o,t,e)})(t,o,r):o==n?((n,t,e)=>function(o){return n(t,o,e)})(t,e,r):((n,t,e)=>function(o){return n(t,e,o)})(t,e,o)},d=(n,t,e)=>n[t](e),p=n=>function(){return n},g=(n,t,e)=>n?t():e(),b=(n,t)=>function(){return n(t)},m=function(){},v=(n,t,e,o,r)=>function(){return n(t,e,o,r)},x=(n,t,e,o)=>n[t](e,o),S=function(n,t,e,o){o&&(n[t]=e)},j=function(t,l){return i(t)?a(t,l):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=a(t,e);return r(o)?o.then(y(d,n,"join","")):o.join("")}(t,l):t.constructor==Set?function(t,e){const o=new Set,u=o.add.bind(o),c=[];for(const i of t){const f=e(i,i,t);r(f)?c.push(f.then(y(g,n,b(u,i),m))):f&&o.add(i)}return 0==c.length?o:s(c).then(p(o))}(t,l):t.constructor==Map?function(t,e){const o=new Map,u=[];for(const[c,i]of t){const f=e(i,c,t);r(f)?u.push(f.then(y(g,n,v(x,o,"set",c,i),m))):f&&o.set(c,i)}return 0==u.length?o:s(u).then(p(o))}(t,l):"function"==typeof t
|
|
9
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.filter=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=function(t,e,o){return e==n?((n,t)=>function(e){return n(e,t)})(t,o):((n,t)=>function(e){return n(t,e)})(t,e)},e=Symbol.iterator,o=(n,t)=>({[e](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),r=n=>null!=n&&"function"==typeof n.then,u=Symbol.asyncIterator,c=(n,t)=>({isAsyncIteratorDone:!1,[u](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:e,done:o}=await n.next();if(o)this.isAsyncIteratorDone=!0;else{const n=t(e);if(r(n)?await n:n)return{value:e,done:!1}}}return{value:void 0,done:!0}}}),i=Array.isArray,f=function(t,e,o,r,u){return e==n?((n,t,e,o)=>function(r){return n(r,t,e,o)})(t,o,r,u):o==n?((n,t,e,o)=>function(r){return n(t,r,e,o)})(t,e,r,u):r==n?((n,t,e,o)=>function(r){return n(t,e,r,o)})(t,e,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(t,e,o,r)},s=Promise.all.bind(Promise),l=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},h=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},a=function(t,e){const o=t.length,u=[];let c=-1,i=-1;for(;++c<o;){const o=t[c],a=e(o,c,t);if(r(a))return s(l([a],t,e,c)).then(f(h,t,u,c-1,n));a&&(u[++i]=o)}return u},y=function(t,e,o,r){return e==n?((n,t,e)=>function(o){return n(o,t,e)})(t,o,r):o==n?((n,t,e)=>function(o){return n(t,o,e)})(t,e,r):((n,t,e)=>function(o){return n(t,e,o)})(t,e,o)},d=(n,t,e)=>n[t](e),p=n=>function(){return n},g=(n,t,e)=>n?t():e(),b=(n,t)=>function(){return n(t)},m=function(){},v=(n,t,e,o,r)=>function(){return n(t,e,o,r)},x=(n,t,e,o)=>n[t](e,o),S=function(n,t,e,o){o&&(n[t]=e)},j=function(t,l){return i(t)?a(t,l):null==t?t:"string"==typeof t||t.constructor==String?function(t,e){const o=a(t,e);return r(o)?o.then(y(d,n,"join","")):o.join("")}(t,l):t.constructor==Set?function(t,e){const o=new Set,u=o.add.bind(o),c=[];for(const i of t){const f=e(i,i,t);r(f)?c.push(f.then(y(g,n,b(u,i),m))):f&&o.add(i)}return 0==c.length?o:s(c).then(p(o))}(t,l):t.constructor==Map?function(t,e){const o=new Map,u=[];for(const[c,i]of t){const f=e(i,c,t);r(f)?u.push(f.then(y(g,n,v(x,o,"set",c,i),m))):f&&o.set(c,i)}return 0==u.length?o:s(u).then(p(o))}(t,l):"function"==typeof t[e]?o(t[e](),l):"function"==typeof t[u]?c(t[u](),l):"function"==typeof t.filter?t.filter(l):t.constructor==Object?function(t,e){const o={},u=[];for(const c in t){const i=t[c],s=e(i,c,t);r(s)?u.push(s.then(f(S,o,c,t[c],n))):s&&(o[c]=i)}return 0==u.length?o:s(u).then(p(o))}(t,l):t};return function(e,o){return"function"==typeof e?t(j,n,e):r(e)?e.then(t(j,n,o)):j(e,o)}}());
|
package/dist/filter.mjs
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
|
|
@@ -297,15 +297,15 @@ const _filter = function (value, predicate) {
|
|
|
297
297
|
if (value.constructor == Map) {
|
|
298
298
|
return mapFilter(value, predicate)
|
|
299
299
|
}
|
|
300
|
-
if (typeof value.filter == 'function') {
|
|
301
|
-
return value.filter(predicate)
|
|
302
|
-
}
|
|
303
300
|
if (typeof value[symbolIterator] == 'function') {
|
|
304
301
|
return FilteringIterator(value[symbolIterator](), predicate)
|
|
305
302
|
}
|
|
306
303
|
if (typeof value[symbolAsyncIterator] == 'function') {
|
|
307
304
|
return FilteringAsyncIterator(value[symbolAsyncIterator](), predicate)
|
|
308
305
|
}
|
|
306
|
+
if (typeof value.filter == 'function') {
|
|
307
|
+
return value.filter(predicate)
|
|
308
|
+
}
|
|
309
309
|
if (value.constructor == Object) {
|
|
310
310
|
return objectFilter(value, predicate)
|
|
311
311
|
}
|
package/dist/flatMap.es.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
|
|
@@ -443,8 +443,11 @@ const sleep = time => new Promise(resolve => {
|
|
|
443
443
|
})
|
|
444
444
|
|
|
445
445
|
const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
446
|
-
const buffer = []
|
|
447
|
-
|
|
446
|
+
const buffer = []
|
|
447
|
+
const promises = new Set()
|
|
448
|
+
|
|
449
|
+
let consumingAsyncIterator = false
|
|
450
|
+
let isAsyncIteratorDone = false
|
|
448
451
|
|
|
449
452
|
return {
|
|
450
453
|
isAsyncIteratorDone: false,
|
|
@@ -455,38 +458,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
455
458
|
return '[object FlatMappingAsyncIterator]'
|
|
456
459
|
},
|
|
457
460
|
|
|
458
|
-
|
|
459
|
-
async
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
473
|
-
promises.add(promise)
|
|
474
|
-
} else {
|
|
475
|
-
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
476
|
-
if (isPromise(bufferLoading)) {
|
|
477
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
478
|
-
promises.add(promise)
|
|
479
|
-
}
|
|
480
|
-
}
|
|
461
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
462
|
+
async _consumeAsyncIterator() {
|
|
463
|
+
for await (const item of asyncIterator) {
|
|
464
|
+
const monad = flatMapper(item)
|
|
465
|
+
if (isPromise(monad)) {
|
|
466
|
+
const bufferLoading =
|
|
467
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
468
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
469
|
+
promises.add(promise)
|
|
470
|
+
} else {
|
|
471
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
472
|
+
if (isPromise(bufferLoading)) {
|
|
473
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
474
|
+
promises.add(promise)
|
|
481
475
|
}
|
|
482
476
|
}
|
|
477
|
+
}
|
|
478
|
+
isAsyncIteratorDone = true
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
async next() {
|
|
483
|
+
if (!consumingAsyncIterator) {
|
|
484
|
+
this._consumeAsyncIterator()
|
|
485
|
+
consumingAsyncIterator = true
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
while (!isAsyncIteratorDone || promises.size > 0) {
|
|
483
489
|
if (buffer.length > 0) {
|
|
484
490
|
return { value: buffer.shift(), done: false }
|
|
485
491
|
}
|
|
486
492
|
if (promises.size > 0) {
|
|
487
|
-
await promiseRace(
|
|
493
|
+
await promiseRace(promises)
|
|
494
|
+
} else {
|
|
495
|
+
await sleep(10)
|
|
488
496
|
}
|
|
489
497
|
}
|
|
498
|
+
|
|
499
|
+
if (buffer.length > 0) {
|
|
500
|
+
return { value: buffer.shift(), done: false }
|
|
501
|
+
}
|
|
502
|
+
|
|
490
503
|
return { value: undefined, done: true }
|
|
491
504
|
},
|
|
492
505
|
}
|
|
@@ -642,9 +655,12 @@ const objectFlatten = function (object) {
|
|
|
642
655
|
|
|
643
656
|
for (const key in object) {
|
|
644
657
|
const element = object[key]
|
|
658
|
+
|
|
645
659
|
if (element == null) {
|
|
646
660
|
continue
|
|
647
|
-
}
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
if (typeof element[symbolIterator] == 'function') {
|
|
648
664
|
for (const monadElement of element) {
|
|
649
665
|
objectAssign(result, monadElement)
|
|
650
666
|
}
|
package/dist/flatMap.es.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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
|
-
const isPromise=e=>null!=e&&"function"==typeof e.then,isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=e=>nativeObjectToString.call(e),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=e=>objectToString(e)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=e=>objectToString(e)==asyncGeneratorFunctionTag,__=Symbol.for("placeholder"),curry3ResolveArg0=(e,r,t)=>function(n){return e(n,r,t)},curry3ResolveArg1=(e,r,t)=>function(n){return e(r,n,t)},curry3ResolveArg2=(e,r,t)=>function(n){return e(r,t,n)},curry3=function(e,r,t,n){return r==__?curry3ResolveArg0(e,t,n):t==__?curry3ResolveArg1(e,r,n):curry3ResolveArg2(e,r,t)},iteratorReduceAsync=async function(e,r,t){let n=e.next();if(n.done)return t;for(;!n.done;)t=r(t,n.value),isPromise(t)&&(t=await t),n=e.next();return t},iteratorReduce=function(e,r,t){let n=e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=e.next());!n.done;){if(t=r(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,e,r,__));n=e.next()}return t},asyncIteratorReduce=async function(e,r,t){let n=await e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await e.next());!n.done;)t=await r(t,n.value),n=await e.next();return t},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(e,r)=>function(t){return e(t,r)},curry2ResolveArg1=(e,r)=>function(t){return e(r,t)},curry2=function(e,r,t){return r==__?curry2ResolveArg0(e,t):curry2ResolveArg1(e,r)},curryArgs3ResolveArgs0=(e,r,t)=>function(...n){return e(n,r,t)},curryArgs3ResolveArgs1=(e,r,t)=>function(...n){return e(r,n,t)},curryArgs3ResolveArgs2=(e,r,t)=>function(...n){return e(r,t,n)},curryArgs3=function(e,r,t,n){return r==__?curryArgs3ResolveArgs0(e,t,n):t==__?curryArgs3ResolveArgs1(e,r,n):curryArgs3ResolveArgs2(e,r,t)},curry4ResolveArg0=(e,r,t,n)=>function(o){return e(o,r,t,n)},curry4ResolveArg1=(e,r,t,n)=>function(o){return e(r,o,t,n)},curry4ResolveArg2=(e,r,t,n)=>function(o){return e(r,t,o,n)},curry4ResolveArg3=(e,r,t,n)=>function(o){return e(r,t,n,o)},curry4=function(e,r,t,n,o){return r==__?curry4ResolveArg0(e,t,n,o):t==__?curry4ResolveArg1(e,r,n,o):n==__?curry4ResolveArg2(e,r,t,o):curry4ResolveArg3(e,r,t,n)},arrayReduceAsync=async function(e,r,t,n){const o=e.length;for(;++n<o;)t=r(t,e[n],n,e),isPromise(t)&&(t=await t);return t},arrayReduce=function(e,r,t){const n=e.length;let o=-1;for(void 0===t&&(t=e[++o]);++o<n;)if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry4(arrayReduceAsync,e,r,__,o));return t},curry5ResolveArg0=(e,r,t,n,o)=>function(c){return e(c,r,t,n,o)},curry5ResolveArg1=(e,r,t,n,o)=>function(c){return e(r,c,t,n,o)},curry5ResolveArg2=(e,r,t,n,o)=>function(c){return e(r,t,c,n,o)},curry5ResolveArg3=(e,r,t,n,o)=>function(c){return e(r,t,n,c,o)},curry5ResolveArg4=(e,r,t,n,o)=>function(c){return e(r,t,n,o,c)},curry5=function(e,r,t,n,o,c){return r==__?curry5ResolveArg0(e,t,n,o,c):t==__?curry5ResolveArg1(e,r,n,o,c):n==__?curry5ResolveArg2(e,r,t,o,c):o==__?curry5ResolveArg3(e,r,t,n,c):curry5ResolveArg4(e,r,t,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(e,r,t,n,o){const c=n.length;for(;++o<c;){const c=n[o];t=r(t,e[c],c,e),isPromise(t)&&(t=await t)}return t},objectReduce=function(e,r,t){const n=objectKeys(e),o=n.length;let c=-1;for(void 0===t&&(t=e[n[++c]]);++c<o;){const o=n[c];if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry5(objectReduceAsync,e,r,__,n,c))}return t},mapReduceAsync=async function(e,r,t,n){for(const[o,c]of n)t=r(t,c,o,e),isPromise(t)&&(t=await t);return t},mapReduce=function(e,r,t){const n=e.entries();if(void 0===t){const e=n.next();if(e.done)return t;t=e.value[1]}for(const[o,c]of n)if(t=r(t,c,o,e),isPromise(t))return t.then(curry4(mapReduceAsync,e,r,__,n));return t},reducerConcat=(e,r)=>function(t,n){const o=e(t,n);return isPromise(o)?o.then(curry2(r,__,n)):r(o,n)},genericReduce=function(e,r,t){return isArray(e)?arrayReduce(e,r,t):null==e?void 0===t?curry2(r,e,__):r(t,e):e.constructor==Map?mapReduce(e,r,t):"function"==typeof e[symbolIterator]?iteratorReduce(e[symbolIterator](),r,t):"function"==typeof e[symbolAsyncIterator]?asyncIteratorReduce(e[symbolAsyncIterator](),r,t):"function"==typeof e.reduce?e.reduce(r,t):"function"==typeof e.chain?e.chain(curry2(r,t,__)):"function"==typeof e.flatMap?e.flatMap(curry2(r,t,__)):e.constructor==Object?objectReduce(e,r,t):void 0===t?curry2(r,e,__):r(t,e)},arrayPush=function(e,r){return e.push(r),e},FlatMappingIterator=function(e,r){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const e=t[n];return n+=1,{value:e,done:!1}}const o=e.next();if(o.done)return o;const c=genericReduce(r(o.value),arrayPush,[]);return c.length>1&&(t=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),sleep=e=>new Promise((r=>{setTimeout(r,e)})),FlatMappingAsyncIterator=function(e,r){const t=[],n=new Set;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||t.length>0||n.size>0;){if(!this.isAsyncIteratorDone){const{value:o,done:c}=await e.next();if(c)this.isAsyncIteratorDone=c;else{const e=r(o);if(isPromise(e)){const r=e.then(curry3(genericReduce,__,arrayPush,t)).then((()=>n.delete(r)));n.add(r)}else{const r=genericReduce(e,arrayPush,t);if(isPromise(r)){const e=r.then((()=>n.delete(e)));n.add(e)}}}}if(t.length>0)return{value:t.shift(),done:!1};n.size>0&&await promiseRace([sleep(1e3),...n])}return{value:void 0,done:!0}}}},always=e=>function(){return e},getArg1=(e,r)=>r,identity=e=>e,promiseAll=Promise.all.bind(Promise),funcConcatSync=(e,r)=>function(...t){return r(e(...t))},asyncIteratorForEach=async function(e,r){const t=[];for await(const n of e){const e=r(n);isPromise(e)&&t.push(e)}return 0==t.length?e:promiseAll(t).then(always(e))},arrayFlatten=function(e){const r=e.length,t=[],n=[];let o=-1;for(;++o<r;){const r=e[o];if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)n.push(r[t])}else if(null==r)n.push(r);else if("function"==typeof r.then)t.push(r.then(curry2(arrayPush,n,__)));else if("function"==typeof r[symbolIterator])for(const e of r)n.push(e);else if("function"==typeof r[symbolAsyncIterator])t.push(asyncIteratorForEach(r[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof r.chain){const e=r.chain(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.flatMap){const e=r.flatMap(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.reduce){const e=r.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(e)&&t.push(e)}else if(r.constructor==Object)for(const e in r)n.push(r[e]);else n.push(r)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayMap=function(e,r){const t=e.length,n=Array(t);let o=-1,c=!1;for(;++o<t;){const t=r(e[o],o,e);isPromise(t)&&(c=!0),n[o]=t}return c?promiseAll(n):n},arrayFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},promiseObjectAllExecutor=e=>function(r){const t={};let n=0;for(const o in e){const c=e[o];isPromise(c)?(n+=1,c.then((e=>function(o){t[e]=o,n-=1,0==n&&r(t)})(o))):t[o]=c}0==n&&r(t)},promiseObjectAll=e=>new Promise(promiseObjectAllExecutor(e)),objectMap=function(e,r){const t={};let n=!1;for(const o in e){const c=r(e[o],o,e);isPromise(c)&&(n=!0),t[o]=c}return n?promiseObjectAll(t):t},objectAssign=Object.assign,objectFlatten=function(e){const r=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const c in e){const s=e[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const e of s)objectAssign(t,e);else if("function"==typeof s[symbolAsyncIterator])r.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const e=s.chain(identity);isPromise(e)?r.push(e.then(n)):objectAssign(t,e)}else if("function"==typeof s.flatMap){const e=s.flatMap(identity);isPromise(e)?r.push(e.then(n)):n(e)}else if("function"==typeof s.reduce){const e=s.reduce(o,null);isPromise(e)&&r.push(e)}else objectAssign(t,s)}return 0==r.length?t:promiseAll(r).then((()=>t))},objectFlatMap=function(e,r){const t=objectMap(e,r);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},callPropUnary=(e,r,t)=>e[r](t),setMap=function(e,r){const t=new Set,n=[];for(const o of e){const c=r(o,o,e);isPromise(c)?n.push(c.then(curry3(callPropUnary,t,"add",__))):t.add(c)}return 0==n.length?t:promiseAll(n).then(always(t))},setFlatten=function(e){e.size;const r=[],t=new Set,n=(e,r)=>t.add(r),o=curry3(callPropUnary,t,"add",__);for(const c of e)if(isArray(c)){const e=c.length;let r=-1;for(;++r<e;)t.add(c[r])}else if(null==c)t.add(c);else if("function"==typeof c[symbolIterator])for(const e of c)t.add(e);else if("function"==typeof c[symbolAsyncIterator])r.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const e=c.chain(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.flatMap){const e=c.flatMap(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.reduce){const e=c.reduce(n,null);isPromise(e)&&r.push(e)}else if(c.constructor==Object)for(const e in c)t.add(c[e]);else t.add(c);return 0==r.length?t:promiseAll(r).then((()=>t))},setFlatMap=function(e,r){const t=setMap(e,r);return isPromise(t)?t.then(setFlatten):setFlatten(t)},funcConcat=(e,r)=>function(...t){const n=e(...t);return isPromise(n)?n.then(r):r(n)},arrayJoin=(e,r)=>e.join(r),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},_flatMap=function(e,r){if(isArray(e))return arrayFlatMap(e,r);if(null==e)return r(e);if("function"==typeof e.then)return e.then(r);if("function"==typeof e.next)return symbolIterator in e?FlatMappingIterator(e,r):FlatMappingAsyncIterator(e,r);if("function"==typeof e.chain)return e.chain(r);if("function"==typeof e.flatMap)return e.flatMap(r);const t=e.constructor;return t==Object?objectFlatMap(e,r):t==Set?setFlatMap(e,r):"string"==typeof e||t==String?stringFlatMap(e,r):r(e)},flatMap=(e,r)=>"function"==typeof e?curry2(_flatMap,__,e):isPromise(e)?e.then(curry2(_flatMap,__,r)):_flatMap(e,r);export default flatMap;
|
|
8
|
+
const isPromise=e=>null!=e&&"function"==typeof e.then,isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=e=>nativeObjectToString.call(e),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=e=>objectToString(e)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=e=>objectToString(e)==asyncGeneratorFunctionTag,__=Symbol.for("placeholder"),curry3ResolveArg0=(e,r,t)=>function(n){return e(n,r,t)},curry3ResolveArg1=(e,r,t)=>function(n){return e(r,n,t)},curry3ResolveArg2=(e,r,t)=>function(n){return e(r,t,n)},curry3=function(e,r,t,n){return r==__?curry3ResolveArg0(e,t,n):t==__?curry3ResolveArg1(e,r,n):curry3ResolveArg2(e,r,t)},iteratorReduceAsync=async function(e,r,t){let n=e.next();if(n.done)return t;for(;!n.done;)t=r(t,n.value),isPromise(t)&&(t=await t),n=e.next();return t},iteratorReduce=function(e,r,t){let n=e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=e.next());!n.done;){if(t=r(t,n.value),isPromise(t))return t.then(curry3(iteratorReduceAsync,e,r,__));n=e.next()}return t},asyncIteratorReduce=async function(e,r,t){let n=await e.next();if(n.done)return t;for(void 0===t&&(t=n.value,n=await e.next());!n.done;)t=await r(t,n.value),n=await e.next();return t},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curry2ResolveArg0=(e,r)=>function(t){return e(t,r)},curry2ResolveArg1=(e,r)=>function(t){return e(r,t)},curry2=function(e,r,t){return r==__?curry2ResolveArg0(e,t):curry2ResolveArg1(e,r)},curryArgs3ResolveArgs0=(e,r,t)=>function(...n){return e(n,r,t)},curryArgs3ResolveArgs1=(e,r,t)=>function(...n){return e(r,n,t)},curryArgs3ResolveArgs2=(e,r,t)=>function(...n){return e(r,t,n)},curryArgs3=function(e,r,t,n){return r==__?curryArgs3ResolveArgs0(e,t,n):t==__?curryArgs3ResolveArgs1(e,r,n):curryArgs3ResolveArgs2(e,r,t)},curry4ResolveArg0=(e,r,t,n)=>function(o){return e(o,r,t,n)},curry4ResolveArg1=(e,r,t,n)=>function(o){return e(r,o,t,n)},curry4ResolveArg2=(e,r,t,n)=>function(o){return e(r,t,o,n)},curry4ResolveArg3=(e,r,t,n)=>function(o){return e(r,t,n,o)},curry4=function(e,r,t,n,o){return r==__?curry4ResolveArg0(e,t,n,o):t==__?curry4ResolveArg1(e,r,n,o):n==__?curry4ResolveArg2(e,r,t,o):curry4ResolveArg3(e,r,t,n)},arrayReduceAsync=async function(e,r,t,n){const o=e.length;for(;++n<o;)t=r(t,e[n],n,e),isPromise(t)&&(t=await t);return t},arrayReduce=function(e,r,t){const n=e.length;let o=-1;for(void 0===t&&(t=e[++o]);++o<n;)if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry4(arrayReduceAsync,e,r,__,o));return t},curry5ResolveArg0=(e,r,t,n,o)=>function(c){return e(c,r,t,n,o)},curry5ResolveArg1=(e,r,t,n,o)=>function(c){return e(r,c,t,n,o)},curry5ResolveArg2=(e,r,t,n,o)=>function(c){return e(r,t,c,n,o)},curry5ResolveArg3=(e,r,t,n,o)=>function(c){return e(r,t,n,c,o)},curry5ResolveArg4=(e,r,t,n,o)=>function(c){return e(r,t,n,o,c)},curry5=function(e,r,t,n,o,c){return r==__?curry5ResolveArg0(e,t,n,o,c):t==__?curry5ResolveArg1(e,r,n,o,c):n==__?curry5ResolveArg2(e,r,t,o,c):o==__?curry5ResolveArg3(e,r,t,n,c):curry5ResolveArg4(e,r,t,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(e,r,t,n,o){const c=n.length;for(;++o<c;){const c=n[o];t=r(t,e[c],c,e),isPromise(t)&&(t=await t)}return t},objectReduce=function(e,r,t){const n=objectKeys(e),o=n.length;let c=-1;for(void 0===t&&(t=e[n[++c]]);++c<o;){const o=n[c];if(t=r(t,e[o],o,e),isPromise(t))return t.then(curry5(objectReduceAsync,e,r,__,n,c))}return t},mapReduceAsync=async function(e,r,t,n){for(const[o,c]of n)t=r(t,c,o,e),isPromise(t)&&(t=await t);return t},mapReduce=function(e,r,t){const n=e.entries();if(void 0===t){const e=n.next();if(e.done)return t;t=e.value[1]}for(const[o,c]of n)if(t=r(t,c,o,e),isPromise(t))return t.then(curry4(mapReduceAsync,e,r,__,n));return t},reducerConcat=(e,r)=>function(t,n){const o=e(t,n);return isPromise(o)?o.then(curry2(r,__,n)):r(o,n)},genericReduce=function(e,r,t){return isArray(e)?arrayReduce(e,r,t):null==e?void 0===t?curry2(r,e,__):r(t,e):e.constructor==Map?mapReduce(e,r,t):"function"==typeof e[symbolIterator]?iteratorReduce(e[symbolIterator](),r,t):"function"==typeof e[symbolAsyncIterator]?asyncIteratorReduce(e[symbolAsyncIterator](),r,t):"function"==typeof e.reduce?e.reduce(r,t):"function"==typeof e.chain?e.chain(curry2(r,t,__)):"function"==typeof e.flatMap?e.flatMap(curry2(r,t,__)):e.constructor==Object?objectReduce(e,r,t):void 0===t?curry2(r,e,__):r(t,e)},arrayPush=function(e,r){return e.push(r),e},FlatMappingIterator=function(e,r){let t=[],n=0;return{[symbolIterator](){return this},next(){if(n<t.length){const e=t[n];return n+=1,{value:e,done:!1}}const o=e.next();if(o.done)return o;const c=genericReduce(r(o.value),arrayPush,[]);return c.length>1&&(t=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),sleep=e=>new Promise((r=>{setTimeout(r,e)})),FlatMappingAsyncIterator=function(e,r){const t=[],n=new Set;let o=!1,c=!1;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async _consumeAsyncIterator(){for await(const o of e){const e=r(o);if(isPromise(e)){const r=e.then(curry3(genericReduce,__,arrayPush,t)).then((()=>n.delete(r)));n.add(r)}else{const r=genericReduce(e,arrayPush,t);if(isPromise(r)){const e=r.then((()=>n.delete(e)));n.add(e)}}}c=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!c||n.size>0;){if(t.length>0)return{value:t.shift(),done:!1};n.size>0?await promiseRace(n):await sleep(10)}return t.length>0?{value:t.shift(),done:!1}:{value:void 0,done:!0}}}},always=e=>function(){return e},getArg1=(e,r)=>r,identity=e=>e,promiseAll=Promise.all.bind(Promise),funcConcatSync=(e,r)=>function(...t){return r(e(...t))},asyncIteratorForEach=async function(e,r){const t=[];for await(const n of e){const e=r(n);isPromise(e)&&t.push(e)}return 0==t.length?e:promiseAll(t).then(always(e))},arrayFlatten=function(e){const r=e.length,t=[],n=[];let o=-1;for(;++o<r;){const r=e[o];if(isArray(r)){const e=r.length;let t=-1;for(;++t<e;)n.push(r[t])}else if(null==r)n.push(r);else if("function"==typeof r.then)t.push(r.then(curry2(arrayPush,n,__)));else if("function"==typeof r[symbolIterator])for(const e of r)n.push(e);else if("function"==typeof r[symbolAsyncIterator])t.push(asyncIteratorForEach(r[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof r.chain){const e=r.chain(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.flatMap){const e=r.flatMap(identity);isPromise(e)?t.push(e.then(curry2(arrayPush,n,__))):n.push(e)}else if("function"==typeof r.reduce){const e=r.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(e)&&t.push(e)}else if(r.constructor==Object)for(const e in r)n.push(r[e]);else n.push(r)}return 0==t.length?n:promiseAll(t).then(always(n))},arrayMap=function(e,r){const t=e.length,n=Array(t);let o=-1,c=!1;for(;++o<t;){const t=r(e[o],o,e);isPromise(t)&&(c=!0),n[o]=t}return c?promiseAll(n):n},arrayFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlatten):arrayFlatten(t)},promiseObjectAllExecutor=e=>function(r){const t={};let n=0;for(const o in e){const c=e[o];isPromise(c)?(n+=1,c.then((e=>function(o){t[e]=o,n-=1,0==n&&r(t)})(o))):t[o]=c}0==n&&r(t)},promiseObjectAll=e=>new Promise(promiseObjectAllExecutor(e)),objectMap=function(e,r){const t={};let n=!1;for(const o in e){const c=r(e[o],o,e);isPromise(c)&&(n=!0),t[o]=c}return n?promiseObjectAll(t):t},objectAssign=Object.assign,objectFlatten=function(e){const r=[],t={},n=curry2(objectAssign,t,__),o=funcConcatSync(getArg1,n);for(const c in e){const s=e[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const e of s)objectAssign(t,e);else if("function"==typeof s[symbolAsyncIterator])r.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const e=s.chain(identity);isPromise(e)?r.push(e.then(n)):objectAssign(t,e)}else if("function"==typeof s.flatMap){const e=s.flatMap(identity);isPromise(e)?r.push(e.then(n)):n(e)}else if("function"==typeof s.reduce){const e=s.reduce(o,null);isPromise(e)&&r.push(e)}else objectAssign(t,s)}return 0==r.length?t:promiseAll(r).then((()=>t))},objectFlatMap=function(e,r){const t=objectMap(e,r);return isPromise(t)?t.then(objectFlatten):objectFlatten(t)},callPropUnary=(e,r,t)=>e[r](t),setMap=function(e,r){const t=new Set,n=[];for(const o of e){const c=r(o,o,e);isPromise(c)?n.push(c.then(curry3(callPropUnary,t,"add",__))):t.add(c)}return 0==n.length?t:promiseAll(n).then(always(t))},setFlatten=function(e){e.size;const r=[],t=new Set,n=(e,r)=>t.add(r),o=curry3(callPropUnary,t,"add",__);for(const c of e)if(isArray(c)){const e=c.length;let r=-1;for(;++r<e;)t.add(c[r])}else if(null==c)t.add(c);else if("function"==typeof c[symbolIterator])for(const e of c)t.add(e);else if("function"==typeof c[symbolAsyncIterator])r.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const e=c.chain(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.flatMap){const e=c.flatMap(identity);isPromise(e)?r.push(e.then(o)):t.add(e)}else if("function"==typeof c.reduce){const e=c.reduce(n,null);isPromise(e)&&r.push(e)}else if(c.constructor==Object)for(const e in c)t.add(c[e]);else t.add(c);return 0==r.length?t:promiseAll(r).then((()=>t))},setFlatMap=function(e,r){const t=setMap(e,r);return isPromise(t)?t.then(setFlatten):setFlatten(t)},funcConcat=(e,r)=>function(...t){const n=e(...t);return isPromise(n)?n.then(r):r(n)},arrayJoin=(e,r)=>e.join(r),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(e,r){const t=arrayMap(e,r);return isPromise(t)?t.then(arrayFlattenToString):arrayFlattenToString(t)},_flatMap=function(e,r){if(isArray(e))return arrayFlatMap(e,r);if(null==e)return r(e);if("function"==typeof e.then)return e.then(r);if("function"==typeof e.next)return symbolIterator in e?FlatMappingIterator(e,r):FlatMappingAsyncIterator(e,r);if("function"==typeof e.chain)return e.chain(r);if("function"==typeof e.flatMap)return e.flatMap(r);const t=e.constructor;return t==Object?objectFlatMap(e,r):t==Set?setFlatMap(e,r):"string"==typeof e||t==String?stringFlatMap(e,r):r(e)},flatMap=(e,r)=>"function"==typeof e?curry2(_flatMap,__,e):isPromise(e)?e.then(curry2(_flatMap,__,r)):_flatMap(e,r);export default flatMap;
|
package/dist/flatMap.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
|
|
@@ -449,8 +449,11 @@ const sleep = time => new Promise(resolve => {
|
|
|
449
449
|
})
|
|
450
450
|
|
|
451
451
|
const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
452
|
-
const buffer = []
|
|
453
|
-
|
|
452
|
+
const buffer = []
|
|
453
|
+
const promises = new Set()
|
|
454
|
+
|
|
455
|
+
let consumingAsyncIterator = false
|
|
456
|
+
let isAsyncIteratorDone = false
|
|
454
457
|
|
|
455
458
|
return {
|
|
456
459
|
isAsyncIteratorDone: false,
|
|
@@ -461,38 +464,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
461
464
|
return '[object FlatMappingAsyncIterator]'
|
|
462
465
|
},
|
|
463
466
|
|
|
464
|
-
|
|
465
|
-
async
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
479
|
-
promises.add(promise)
|
|
480
|
-
} else {
|
|
481
|
-
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
482
|
-
if (isPromise(bufferLoading)) {
|
|
483
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
484
|
-
promises.add(promise)
|
|
485
|
-
}
|
|
486
|
-
}
|
|
467
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
468
|
+
async _consumeAsyncIterator() {
|
|
469
|
+
for await (const item of asyncIterator) {
|
|
470
|
+
const monad = flatMapper(item)
|
|
471
|
+
if (isPromise(monad)) {
|
|
472
|
+
const bufferLoading =
|
|
473
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
474
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
475
|
+
promises.add(promise)
|
|
476
|
+
} else {
|
|
477
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
478
|
+
if (isPromise(bufferLoading)) {
|
|
479
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
480
|
+
promises.add(promise)
|
|
487
481
|
}
|
|
488
482
|
}
|
|
483
|
+
}
|
|
484
|
+
isAsyncIteratorDone = true
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
|
|
488
|
+
async next() {
|
|
489
|
+
if (!consumingAsyncIterator) {
|
|
490
|
+
this._consumeAsyncIterator()
|
|
491
|
+
consumingAsyncIterator = true
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
while (!isAsyncIteratorDone || promises.size > 0) {
|
|
489
495
|
if (buffer.length > 0) {
|
|
490
496
|
return { value: buffer.shift(), done: false }
|
|
491
497
|
}
|
|
492
498
|
if (promises.size > 0) {
|
|
493
|
-
await promiseRace(
|
|
499
|
+
await promiseRace(promises)
|
|
500
|
+
} else {
|
|
501
|
+
await sleep(10)
|
|
494
502
|
}
|
|
495
503
|
}
|
|
504
|
+
|
|
505
|
+
if (buffer.length > 0) {
|
|
506
|
+
return { value: buffer.shift(), done: false }
|
|
507
|
+
}
|
|
508
|
+
|
|
496
509
|
return { value: undefined, done: true }
|
|
497
510
|
},
|
|
498
511
|
}
|
|
@@ -648,9 +661,12 @@ const objectFlatten = function (object) {
|
|
|
648
661
|
|
|
649
662
|
for (const key in object) {
|
|
650
663
|
const element = object[key]
|
|
664
|
+
|
|
651
665
|
if (element == null) {
|
|
652
666
|
continue
|
|
653
|
-
}
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
if (typeof element[symbolIterator] == 'function') {
|
|
654
670
|
for (const monadElement of element) {
|
|
655
671
|
objectAssign(result, monadElement)
|
|
656
672
|
}
|
package/dist/flatMap.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.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,e=(Object.values,Object.prototype.toString,Symbol.for("placeholder")),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o},u=Symbol.iterator,f=Symbol.asyncIterator,c=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},i=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},s=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},
|
|
9
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatMap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,e=(Object.values,Object.prototype.toString,Symbol.for("placeholder")),o=function(n,t,o,r){return t==e?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==e?((n,t,e)=>function(o){return n(t,o,e)})(n,t,r):((n,t,e)=>function(o){return n(t,e,o)})(n,t,o)},r=async function(t,e,o){let r=t.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),n(o)&&(o=await o),r=t.next();return o},u=Symbol.iterator,f=Symbol.asyncIterator,c=function(n,t,o){return t==e?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,t)},i=function(n,t,o,r,u){return t==e?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==e?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,r,u):r==e?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,o,r)},s=async function(t,e,o,r){const u=t.length;for(;++r<u;)o=e(o,t[r],r,t),n(o)&&(o=await o);return o},a=Object.keys,l=async function(t,e,o,r,u){const f=r.length;for(;++u<f;){const f=r[u];o=e(o,t[f],f,t),n(o)&&(o=await o)}return o},h=async function(t,e,o,r){for(const[u,f]of r)o=e(o,f,u,t),n(o)&&(o=await o);return o},p=function(p,d,y){return t(p)?function(t,o,r){const u=t.length;let f=-1;for(void 0===r&&(r=t[++f]);++f<u;)if(r=o(r,t[f],f,t),n(r))return r.then(i(s,t,o,e,f));return r}(p,d,y):null==p?void 0===y?c(d,p,e):d(y,p):p.constructor==Map?function(t,o,r){const u=t.entries();if(void 0===r){const n=u.next();if(n.done)return r;r=n.value[1]}for(const[f,c]of u)if(r=o(r,c,f,t),n(r))return r.then(i(h,t,o,e,u));return r}(p,d,y):"function"==typeof p[u]?function(t,u,f){let c=t.next();if(c.done)return f;for(void 0===f&&(f=c.value,c=t.next());!c.done;){if(f=u(f,c.value),n(f))return f.then(o(r,t,u,e));c=t.next()}return f}(p[u](),d,y):"function"==typeof p[f]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(p[f](),d,y):"function"==typeof p.reduce?p.reduce(d,y):"function"==typeof p.chain?p.chain(c(d,y,e)):"function"==typeof p.flatMap?p.flatMap(c(d,y,e)):p.constructor==Object?function(t,o,r){const u=a(t),f=u.length;let c=-1;for(void 0===r&&(r=t[u[++c]]);++c<f;){const f=u[c];if(r=o(r,t[f],f,t),n(r))return r.then((i=l,h=o,p=e,d=u,y=c,(s=t)==e?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,h,p,d,y):h==e?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,p,d,y):p==e?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,h,d,y):d==e?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,h,p,y):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,h,p,d)))}var i,s,h,p,d,y;return r}(p,d,y):void 0===y?c(d,p,e):d(y,p)},d=function(n,t){return n.push(t),n},y=Promise.race.bind(Promise),g=n=>new Promise((t=>{setTimeout(t,n)})),v=n=>function(){return n},b=(n,t)=>t,w=n=>n,m=Promise.all.bind(Promise),x=(n,t)=>function(...e){return t(n(...e))},M=async function(t,e){const o=[];for await(const r of t){const t=e(r);n(t)&&o.push(t)}return 0==o.length?t:m(o).then(v(t))},j=function(o){const r=o.length,i=[],s=[];let a=-1;for(;++a<r;){const r=o[a];if(t(r)){const n=r.length;let t=-1;for(;++t<n;)s.push(r[t])}else if(null==r)s.push(r);else if("function"==typeof r.then)i.push(r.then(c(d,s,e)));else if("function"==typeof r[u])for(const n of r)s.push(n);else if("function"==typeof r[f])i.push(M(r[f](),c(d,s,e)));else if("function"==typeof r.chain){const t=r.chain(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.flatMap){const t=r.flatMap(w);n(t)?i.push(t.then(c(d,s,e))):s.push(t)}else if("function"==typeof r.reduce){const t=r.reduce(x(b,c(d,s,e)),null);n(t)&&i.push(t)}else if(r.constructor==Object)for(const n in r)s.push(r[n]);else s.push(r)}return 0==i.length?s:m(i).then(v(s))},S=function(t,e){const o=t.length,r=Array(o);let u=-1,f=!1;for(;++u<o;){const o=e(t[u],u,t);n(o)&&(f=!0),r[u]=o}return f?m(r):r},O=t=>new Promise((t=>function(e){const o={};let r=0;for(const u in t){const f=t[u];n(f)?(r+=1,f.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=f}0==r&&e(o)})(t)),A=Object.assign,P=function(t){const o=[],r={},i=c(A,r,e),s=x(b,i);for(const e in t){const c=t[e];if(null!=c)if("function"==typeof c[u])for(const n of c)A(r,n);else if("function"==typeof c[f])o.push(M(c[f](),i));else if("function"==typeof c.chain){const t=c.chain(w);n(t)?o.push(t.then(i)):A(r,t)}else if("function"==typeof c.flatMap){const t=c.flatMap(w);n(t)?o.push(t.then(i)):i(t)}else if("function"==typeof c.reduce){const t=c.reduce(s,null);n(t)&&o.push(t)}else A(r,c)}return 0==o.length?r:m(o).then((()=>r))},I=function(t,e){const o=function(t,e){const o={};let r=!1;for(const u in t){const f=e(t[u],u,t);n(f)&&(r=!0),o[u]=f}return r?O(o):o}(t,e);return n(o)?o.then(P):P(o)},z=(n,t,e)=>n[t](e),T=function(r){r.size;const c=[],i=new Set,s=(n,t)=>i.add(t),a=o(z,i,"add",e);for(const e of r)if(t(e)){const n=e.length;let t=-1;for(;++t<n;)i.add(e[t])}else if(null==e)i.add(e);else if("function"==typeof e[u])for(const n of e)i.add(n);else if("function"==typeof e[f])c.push(M(e[f](),a));else if("function"==typeof e.chain){const t=e.chain(w);n(t)?c.push(t.then(a)):i.add(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(w);n(t)?c.push(t.then(a)):i.add(t)}else if("function"==typeof e.reduce){const t=e.reduce(s,null);n(t)&&c.push(t)}else if(e.constructor==Object)for(const n in e)i.add(e[n]);else i.add(e);return 0==c.length?i:m(c).then((()=>i))},_=function(t,r){const u=function(t,r){const u=new Set,f=[];for(const c of t){const i=r(c,c,t);n(i)?f.push(i.then(o(z,u,"add",e))):u.add(i)}return 0==f.length?u:m(f).then(v(u))}(t,r);return n(u)?u.then(T):T(u)},k=(D=j,F=c(((n,t)=>n.join(t)),e,""),function(...t){const e=D(...t);return n(e)?e.then(F):F(e)});var D,F;const q=function(r,c){if(t(r))return function(t,e){const o=S(t,e);return n(o)?o.then(j):j(o)}(r,c);if(null==r)return c(r);if("function"==typeof r.then)return r.then(c);if("function"==typeof r.next)return u in r?function(n,t){let e=[],o=0;return{[u](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=p(t(r.value),d,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(r,c):function(t,r){const u=[],c=new Set;let i=!1,s=!1;return{isAsyncIteratorDone:!1,[f](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async _consumeAsyncIterator(){for await(const f of t){const t=r(f);if(n(t)){const n=t.then(o(p,e,d,u)).then((()=>c.delete(n)));c.add(n)}else{const e=p(t,d,u);if(n(e)){const n=e.then((()=>c.delete(n)));c.add(n)}}}s=!0},async next(){for(i||(this._consumeAsyncIterator(),i=!0);!s||c.size>0;){if(u.length>0)return{value:u.shift(),done:!1};c.size>0?await y(c):await g(10)}return u.length>0?{value:u.shift(),done:!1}:{value:void 0,done:!0}}}}(r,c);if("function"==typeof r.chain)return r.chain(c);if("function"==typeof r.flatMap)return r.flatMap(c);const i=r.constructor;return i==Object?I(r,c):i==Set?_(r,c):"string"==typeof r||i==String?function(t,e){const o=S(t,e);return n(o)?o.then(k):k(o)}(r,c):c(r)};return(t,o)=>"function"==typeof t?c(q,e,t):n(t)?t.then(c(q,e,o)):q(t,o)}());
|
package/dist/flatMap.mjs
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
|
|
@@ -443,8 +443,11 @@ const sleep = time => new Promise(resolve => {
|
|
|
443
443
|
})
|
|
444
444
|
|
|
445
445
|
const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
446
|
-
const buffer = []
|
|
447
|
-
|
|
446
|
+
const buffer = []
|
|
447
|
+
const promises = new Set()
|
|
448
|
+
|
|
449
|
+
let consumingAsyncIterator = false
|
|
450
|
+
let isAsyncIteratorDone = false
|
|
448
451
|
|
|
449
452
|
return {
|
|
450
453
|
isAsyncIteratorDone: false,
|
|
@@ -455,38 +458,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
455
458
|
return '[object FlatMappingAsyncIterator]'
|
|
456
459
|
},
|
|
457
460
|
|
|
458
|
-
|
|
459
|
-
async
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
473
|
-
promises.add(promise)
|
|
474
|
-
} else {
|
|
475
|
-
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
476
|
-
if (isPromise(bufferLoading)) {
|
|
477
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
478
|
-
promises.add(promise)
|
|
479
|
-
}
|
|
480
|
-
}
|
|
461
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
462
|
+
async _consumeAsyncIterator() {
|
|
463
|
+
for await (const item of asyncIterator) {
|
|
464
|
+
const monad = flatMapper(item)
|
|
465
|
+
if (isPromise(monad)) {
|
|
466
|
+
const bufferLoading =
|
|
467
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
468
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
469
|
+
promises.add(promise)
|
|
470
|
+
} else {
|
|
471
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
472
|
+
if (isPromise(bufferLoading)) {
|
|
473
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
474
|
+
promises.add(promise)
|
|
481
475
|
}
|
|
482
476
|
}
|
|
477
|
+
}
|
|
478
|
+
isAsyncIteratorDone = true
|
|
479
|
+
},
|
|
480
|
+
|
|
481
|
+
|
|
482
|
+
async next() {
|
|
483
|
+
if (!consumingAsyncIterator) {
|
|
484
|
+
this._consumeAsyncIterator()
|
|
485
|
+
consumingAsyncIterator = true
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
while (!isAsyncIteratorDone || promises.size > 0) {
|
|
483
489
|
if (buffer.length > 0) {
|
|
484
490
|
return { value: buffer.shift(), done: false }
|
|
485
491
|
}
|
|
486
492
|
if (promises.size > 0) {
|
|
487
|
-
await promiseRace(
|
|
493
|
+
await promiseRace(promises)
|
|
494
|
+
} else {
|
|
495
|
+
await sleep(10)
|
|
488
496
|
}
|
|
489
497
|
}
|
|
498
|
+
|
|
499
|
+
if (buffer.length > 0) {
|
|
500
|
+
return { value: buffer.shift(), done: false }
|
|
501
|
+
}
|
|
502
|
+
|
|
490
503
|
return { value: undefined, done: true }
|
|
491
504
|
},
|
|
492
505
|
}
|
|
@@ -642,9 +655,12 @@ const objectFlatten = function (object) {
|
|
|
642
655
|
|
|
643
656
|
for (const key in object) {
|
|
644
657
|
const element = object[key]
|
|
658
|
+
|
|
645
659
|
if (element == null) {
|
|
646
660
|
continue
|
|
647
|
-
}
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
if (typeof element[symbolIterator] == 'function') {
|
|
648
664
|
for (const monadElement of element) {
|
|
649
665
|
objectAssign(result, monadElement)
|
|
650
666
|
}
|
package/dist/forEach.es.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
|
|
@@ -187,7 +187,7 @@ const _iteratorForEachSeriesAsync = async function (iterator, callback) {
|
|
|
187
187
|
|
|
188
188
|
const iteratorForEachSeries = function (iterator, callback) {
|
|
189
189
|
let iteration = iterator.next()
|
|
190
|
-
while (!
|
|
190
|
+
while (!iteration.done) {
|
|
191
191
|
const operation = callback(iteration.value)
|
|
192
192
|
if (isPromise(operation)) {
|
|
193
193
|
return operation
|
|
@@ -217,16 +217,16 @@ const _forEach = function (collection, callback) {
|
|
|
217
217
|
if (collection == null) {
|
|
218
218
|
return collection
|
|
219
219
|
}
|
|
220
|
-
if (typeof collection.forEach == 'function') {
|
|
221
|
-
collection.forEach(callback)
|
|
222
|
-
return collection
|
|
223
|
-
}
|
|
224
220
|
if (typeof collection[symbolIterator] == 'function') {
|
|
225
221
|
return iteratorForEach(collection[symbolIterator](), callback)
|
|
226
222
|
}
|
|
227
223
|
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
228
224
|
return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
|
|
229
225
|
}
|
|
226
|
+
if (typeof collection.forEach == 'function') {
|
|
227
|
+
collection.forEach(callback)
|
|
228
|
+
return collection
|
|
229
|
+
}
|
|
230
230
|
if (collection.constructor == Object) {
|
|
231
231
|
return objectForEach(collection, callback)
|
|
232
232
|
}
|
package/dist/forEach.es.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
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
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,o)=>function(t){return r(t,o)},curry2ResolveArg1=(r,o)=>function(t){return r(o,t)},curry2=function(r,o,t){return o==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,o)},isArray=Array.isArray,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,promiseAll=Promise.all.bind(Promise),always=r=>function(){return r},arrayForEach=function(r,o){const t=r.length,n=[];let e=-1;for(;++e<t;){const t=o(r[e],e,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,o){const t=[];for(const n in r){const e=o(r[n],n,r);isPromise(e)&&t.push(e)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,o){const t=[];for(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},asyncIteratorForEach=async function(r,o){const t=[];for await(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,thunkify3=(r,o,t,n)=>function(){return r(o,t,n)},_arrayForEachSeriesAsync=async function(r,o,t){const n=r.length;for(;++t<n;){const n=o(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,o){const t=r.length;let n=-1;for(;++n<t;){const t=o(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,o,n))}return r},_objectForEachSeriesAsync=async function(r,o,t){for(const n in r){if(n in t)continue;const e=o(r[n]);isPromise(e)&&await e}return r},objectForEachSeries=function(r,o){const t={};for(const n in r){t[n]=!0;const e=o(r[n],n,r);if(isPromise(e))return e.then(thunkify3(_objectForEachSeriesAsync,r,o,t))}return r},thunkify2=(r,o,t)=>function(){return r(o,t)},_iteratorForEachSeriesAsync=async function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,o){let t=r.next();for(;!
|
|
8
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry2ResolveArg0=(r,o)=>function(t){return r(t,o)},curry2ResolveArg1=(r,o)=>function(t){return r(o,t)},curry2=function(r,o,t){return o==__?curry2ResolveArg0(r,t):curry2ResolveArg1(r,o)},isArray=Array.isArray,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,promiseAll=Promise.all.bind(Promise),always=r=>function(){return r},arrayForEach=function(r,o){const t=r.length,n=[];let e=-1;for(;++e<t;){const t=o(r[e],e,r);isPromise(t)&&n.push(t)}return 0==n.length?r:promiseAll(n).then(always(r))},objectForEach=function(r,o){const t=[];for(const n in r){const e=o(r[n],n,r);isPromise(e)&&t.push(e)}return 0==t.length?r:promiseAll(t).then(always(r))},iteratorForEach=function(r,o){const t=[];for(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},asyncIteratorForEach=async function(r,o){const t=[];for await(const n of r){const r=o(n);isPromise(r)&&t.push(r)}return 0==t.length?r:promiseAll(t).then(always(r))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,thunkify3=(r,o,t,n)=>function(){return r(o,t,n)},_arrayForEachSeriesAsync=async function(r,o,t){const n=r.length;for(;++t<n;){const n=o(r[t]);isPromise(n)&&await n}return r},arrayForEachSeries=function(r,o){const t=r.length;let n=-1;for(;++n<t;){const t=o(r[n],n,r);if(isPromise(t))return t.then(thunkify3(_arrayForEachSeriesAsync,r,o,n))}return r},_objectForEachSeriesAsync=async function(r,o,t){for(const n in r){if(n in t)continue;const e=o(r[n]);isPromise(e)&&await e}return r},objectForEachSeries=function(r,o){const t={};for(const n in r){t[n]=!0;const e=o(r[n],n,r);if(isPromise(e))return e.then(thunkify3(_objectForEachSeriesAsync,r,o,t))}return r},thunkify2=(r,o,t)=>function(){return r(o,t)},_iteratorForEachSeriesAsync=async function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);isPromise(n)&&await n,t=r.next()}return r},iteratorForEachSeries=function(r,o){let t=r.next();for(;!t.done;){const n=o(t.value);if(isPromise(n))return n.then(thunkify2(_iteratorForEachSeriesAsync,r,o));t=r.next()}return r},asyncIteratorForEachSeries=async function(r,o){for await(const t of r){const r=o(t);isPromise(r)&&await r}return r},_forEach=function(r,o){return isArray(r)?arrayForEach(r,o):null==r?r:"function"==typeof r[symbolIterator]?iteratorForEach(r[symbolIterator](),o):"function"==typeof r[symbolAsyncIterator]?asyncIteratorForEach(r[symbolAsyncIterator](),o):"function"==typeof r.forEach?(r.forEach(o),r):r.constructor==Object?objectForEach(r,o):r},forEach=function(r,o){return"function"==typeof r?curry2(_forEach,__,r):isPromise(r)?r.then(curry2(_forEach,__,o)):_forEach(r,o)},_forEachSeries=function(r,o){if(isArray(r))return arrayForEachSeries(r,o);if(null==r)throw new TypeError(`invalid collection ${r}`);if("function"==typeof r[symbolIterator])return iteratorForEachSeries(r[symbolIterator](),o);if("function"==typeof r[symbolAsyncIterator])return asyncIteratorForEachSeries(r[symbolAsyncIterator](),o);if(r.constructor==Object)return objectForEachSeries(r,o);throw new TypeError(`invalid collection ${r}`)};forEach.series=function(r,o){return"function"==typeof r?curry2(_forEachSeries,__,r):isPromise(r)?r.then(curry2(_forEachSeries,__,o)):_forEachSeries(r,o)};export default forEach;
|
package/dist/forEach.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
|
|
@@ -193,7 +193,7 @@ const _iteratorForEachSeriesAsync = async function (iterator, callback) {
|
|
|
193
193
|
|
|
194
194
|
const iteratorForEachSeries = function (iterator, callback) {
|
|
195
195
|
let iteration = iterator.next()
|
|
196
|
-
while (!
|
|
196
|
+
while (!iteration.done) {
|
|
197
197
|
const operation = callback(iteration.value)
|
|
198
198
|
if (isPromise(operation)) {
|
|
199
199
|
return operation
|
|
@@ -223,16 +223,16 @@ const _forEach = function (collection, callback) {
|
|
|
223
223
|
if (collection == null) {
|
|
224
224
|
return collection
|
|
225
225
|
}
|
|
226
|
-
if (typeof collection.forEach == 'function') {
|
|
227
|
-
collection.forEach(callback)
|
|
228
|
-
return collection
|
|
229
|
-
}
|
|
230
226
|
if (typeof collection[symbolIterator] == 'function') {
|
|
231
227
|
return iteratorForEach(collection[symbolIterator](), callback)
|
|
232
228
|
}
|
|
233
229
|
if (typeof collection[symbolAsyncIterator] == 'function') {
|
|
234
230
|
return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
|
|
235
231
|
}
|
|
232
|
+
if (typeof collection.forEach == 'function') {
|
|
233
|
+
collection.forEach(callback)
|
|
234
|
+
return collection
|
|
235
|
+
}
|
|
236
236
|
if (collection.constructor == Object) {
|
|
237
237
|
return objectForEach(collection, callback)
|
|
238
238
|
}
|
package/dist/forEach.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.forEach=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),o=function(n,o,r){return o==t?((n,t)=>function(o){return n(o,t)})(n,r):((n,t)=>function(o){return n(t,o)})(n,o)},r=Array.isArray,e=(Object.prototype.toString,Promise.all.bind(Promise)),c=n=>function(){return n},u=Symbol.iterator,f=Symbol.asyncIterator,i=(n,t,o,r)=>function(){return n(t,o,r)},s=async function(t,o,r){const e=t.length;for(;++r<e;){const e=o(t[r]);n(e)&&await e}return t},l=async function(t,o,r){for(const e in t){if(e in r)continue;const c=o(t[e]);n(c)&&await c}return t},a=(n,t,o)=>function(){return n(t,o)},h=async function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);n(e)&&await e,r=t.next()}return t},y=function(t,o){return r(t)?function(t,o){const r=t.length,u=[];let f=-1;for(;++f<r;){const r=o(t[f],f,t);n(r)&&u.push(r)}return 0==u.length?t:e(u).then(c(t))}(t,o):null==t?t:"function"==typeof t
|
|
9
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.forEach=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),o=function(n,o,r){return o==t?((n,t)=>function(o){return n(o,t)})(n,r):((n,t)=>function(o){return n(t,o)})(n,o)},r=Array.isArray,e=(Object.prototype.toString,Promise.all.bind(Promise)),c=n=>function(){return n},u=Symbol.iterator,f=Symbol.asyncIterator,i=(n,t,o,r)=>function(){return n(t,o,r)},s=async function(t,o,r){const e=t.length;for(;++r<e;){const e=o(t[r]);n(e)&&await e}return t},l=async function(t,o,r){for(const e in t){if(e in r)continue;const c=o(t[e]);n(c)&&await c}return t},a=(n,t,o)=>function(){return n(t,o)},h=async function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);n(e)&&await e,r=t.next()}return t},y=function(t,o){return r(t)?function(t,o){const r=t.length,u=[];let f=-1;for(;++f<r;){const r=o(t[f],f,t);n(r)&&u.push(r)}return 0==u.length?t:e(u).then(c(t))}(t,o):null==t?t:"function"==typeof t[u]?function(t,o){const r=[];for(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[u](),o):"function"==typeof t[f]?async function(t,o){const r=[];for await(const e of t){const t=o(e);n(t)&&r.push(t)}return 0==r.length?t:e(r).then(c(t))}(t[f](),o):"function"==typeof t.forEach?(t.forEach(o),t):t.constructor==Object?function(t,o){const r=[];for(const e in t){const c=o(t[e],e,t);n(c)&&r.push(c)}return 0==r.length?t:e(r).then(c(t))}(t,o):t},p=function(r,e){return"function"==typeof r?o(y,t,r):n(r)?r.then(o(y,t,e)):y(r,e)},b=function(t,o){if(r(t))return function(t,o){const r=t.length;let e=-1;for(;++e<r;){const r=o(t[e],e,t);if(n(r))return r.then(i(s,t,o,e))}return t}(t,o);if(null==t)throw new TypeError(`invalid collection ${t}`);if("function"==typeof t[u])return function(t,o){let r=t.next();for(;!r.done;){const e=o(r.value);if(n(e))return e.then(a(h,t,o));r=t.next()}return t}(t[u](),o);if("function"==typeof t[f])return async function(t,o){for await(const r of t){const t=o(r);n(t)&&await t}return t}(t[f](),o);if(t.constructor==Object)return function(t,o){const r={};for(const e in t){r[e]=!0;const c=o(t[e],e,t);if(n(c))return c.then(i(l,t,o,r))}return t}(t,o);throw new TypeError(`invalid collection ${t}`)};return p.series=function(r,e){return"function"==typeof r?o(b,t,r):n(r)?r.then(o(b,t,e)):b(r,e)},p}());
|