rubico 2.8.6 → 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 +1 -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/iteratorFind.js +0 -2
- package/_internal/iteratorForEachSeries.js +1 -1
- package/_internal/objectFlatten.js +4 -1
- package/all.js +7 -8
- package/and.js +1 -1
- package/assign.js +1 -1
- package/compose.js +1 -1
- 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 +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 +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 +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 +187 -39
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +187 -39
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +187 -39
- 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 +233 -78
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +233 -78
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +233 -78
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +233 -78
- 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 +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 +187 -39
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +187 -39
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +187 -39
- 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 +233 -78
- package/every.js +2 -2
- package/filter.js +4 -4
- package/flatMap.js +61 -54
- package/forEach.js +33 -56
- package/get.js +5 -3
- package/gt.js +2 -2
- package/gte.js +2 -2
- package/index.js +233 -78
- package/lt.js +2 -2
- package/lte.js +2 -2
- package/map.js +115 -151
- package/monad/README.md +1 -1
- 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 +1 -1
- package/reduce.js +1 -1
- package/set.js +17 -18
- package/some.js +2 -2
- package/switchCase.js +12 -4
- package/tap.js +6 -4
- package/transform.js +1 -1
- package/tryCatch.js +1 -1
- package/x/defaultsDeep.js +1 -1
- package/x/defaultsDeep.test.js +1 -1
- package/_internal/NextIteration.js +0 -12
- package/_internal/generatorFunctionFilter.js +0 -28
- package/_internal/iterationMap.js +0 -27
package/dist/x/flatten.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 isArray=Array.isArray,__=Symbol.for("placeholder"),arrayPush=function(t,e){return t.push(e),t},always=t=>function(){return t},curry2ResolveArg0=(t,e)=>function(r){return t(r,e)},curry2ResolveArg1=(t,e)=>function(r){return t(e,r)},curry2=function(t,e,r){return e==__?curry2ResolveArg0(t,r):curry2ResolveArg1(t,e)},getArg1=(t,e)=>e,identity=t=>t,isPromise=t=>null!=t&&"function"==typeof t.then,promiseAll=Promise.all.bind(Promise),funcConcatSync=(t,e)=>function(...r){return e(t(...r))},asyncIteratorForEach=async function(t,e){const r=[];for await(const n of t){const t=e(n);isPromise(t)&&r.push(t)}return 0==r.length?t:promiseAll(r).then(always(t))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,arrayFlatten=function(t){const e=t.length,r=[],n=[];let o=-1;for(;++o<e;){const e=t[o];if(isArray(e)){const t=e.length;let r=-1;for(;++r<t;)n.push(e[r])}else if(null==e)n.push(e);else if("function"==typeof e.then)r.push(e.then(curry2(arrayPush,n,__)));else if("function"==typeof e[symbolIterator])for(const t of e)n.push(t);else if("function"==typeof e[symbolAsyncIterator])r.push(asyncIteratorForEach(e[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof e.chain){const t=e.chain(identity);isPromise(t)?r.push(t.then(curry2(arrayPush,n,__))):n.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(identity);isPromise(t)?r.push(t.then(curry2(arrayPush,n,__))):n.push(t)}else if("function"==typeof e.reduce){const t=e.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(t)&&r.push(t)}else if(e.constructor==Object)for(const t in e)n.push(e[t]);else n.push(e)}return 0==r.length?n:promiseAll(r).then(always(n))},curry3ResolveArg0=(t,e,r)=>function(n){return t(n,e,r)},curry3ResolveArg1=(t,e,r)=>function(n){return t(e,n,r)},curry3ResolveArg2=(t,e,r)=>function(n){return t(e,r,n)},curry3=function(t,e,r,n){return e==__?curry3ResolveArg0(t,r,n):r==__?curry3ResolveArg1(t,e,n):curry3ResolveArg2(t,e,r)},callPropUnary=(t,e,r)=>t[e](r),setFlatten=function(t){t.size;const e=[],r=new Set,n=(t,e)=>r.add(e),o=curry3(callPropUnary,r,"add",__);for(const c of t)if(isArray(c)){const t=c.length;let e=-1;for(;++e<t;)r.add(c[e])}else if(null==c)r.add(c);else if("function"==typeof c[symbolIterator])for(const t of c)r.add(t);else if("function"==typeof c[symbolAsyncIterator])e.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const t=c.chain(identity);isPromise(t)?e.push(t.then(o)):r.add(t)}else if("function"==typeof c.flatMap){const t=c.flatMap(identity);isPromise(t)?e.push(t.then(o)):r.add(t)}else if("function"==typeof c.reduce){const t=c.reduce(n,null);isPromise(t)&&e.push(t)}else if(c.constructor==Object)for(const t in c)r.add(c[t]);else r.add(c);return 0==e.length?r:promiseAll(e).then((()=>r))},objectAssign=Object.assign,objectFlatten=function(t){const e=[],r={},n=curry2(objectAssign,r,__),o=funcConcatSync(getArg1,n);for(const c in t){const s=t[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const t of s)objectAssign(r,t);else if("function"==typeof s[symbolAsyncIterator])e.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const t=s.chain(identity);isPromise(t)?e.push(t.then(n)):objectAssign(r,t)}else if("function"==typeof s.flatMap){const t=s.flatMap(identity);isPromise(t)?e.push(t.then(n)):n(t)}else if("function"==typeof s.reduce){const t=s.reduce(o,null);isPromise(t)&&e.push(t)}else objectAssign(r,s)}return 0==e.length?r:promiseAll(e).then((()=>r))},objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=t=>nativeObjectToString.call(t),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=t=>objectToString(t)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=t=>objectToString(t)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(t,e,r){let n=t.next();if(n.done)return r;for(;!n.done;)r=e(r,n.value),isPromise(r)&&(r=await r),n=t.next();return r},iteratorReduce=function(t,e,r){let n=t.next();if(n.done)return r;for(void 0===r&&(r=n.value,n=t.next());!n.done;){if(r=e(r,n.value),isPromise(r))return r.then(curry3(iteratorReduceAsync,t,e,__));n=t.next()}return r},asyncIteratorReduce=async function(t,e,r){let n=await t.next();if(n.done)return r;for(void 0===r&&(r=n.value,n=await t.next());!n.done;)r=await e(r,n.value),n=await t.next();return r},curryArgs3ResolveArgs0=(t,e,r)=>function(...n){return t(n,e,r)},curryArgs3ResolveArgs1=(t,e,r)=>function(...n){return t(e,n,r)},curryArgs3ResolveArgs2=(t,e,r)=>function(...n){return t(e,r,n)},curryArgs3=function(t,e,r,n){return e==__?curryArgs3ResolveArgs0(t,r,n):r==__?curryArgs3ResolveArgs1(t,e,n):curryArgs3ResolveArgs2(t,e,r)},curry4ResolveArg0=(t,e,r,n)=>function(o){return t(o,e,r,n)},curry4ResolveArg1=(t,e,r,n)=>function(o){return t(e,o,r,n)},curry4ResolveArg2=(t,e,r,n)=>function(o){return t(e,r,o,n)},curry4ResolveArg3=(t,e,r,n)=>function(o){return t(e,r,n,o)},curry4=function(t,e,r,n,o){return e==__?curry4ResolveArg0(t,r,n,o):r==__?curry4ResolveArg1(t,e,n,o):n==__?curry4ResolveArg2(t,e,r,o):curry4ResolveArg3(t,e,r,n)},arrayReduceAsync=async function(t,e,r,n){const o=t.length;for(;++n<o;)r=e(r,t[n],n,t),isPromise(r)&&(r=await r);return r},arrayReduce=function(t,e,r){const n=t.length;let o=-1;for(void 0===r&&(r=t[++o]);++o<n;)if(r=e(r,t[o],o,t),isPromise(r))return r.then(curry4(arrayReduceAsync,t,e,__,o));return r},curry5ResolveArg0=(t,e,r,n,o)=>function(c){return t(c,e,r,n,o)},curry5ResolveArg1=(t,e,r,n,o)=>function(c){return t(e,c,r,n,o)},curry5ResolveArg2=(t,e,r,n,o)=>function(c){return t(e,r,c,n,o)},curry5ResolveArg3=(t,e,r,n,o)=>function(c){return t(e,r,n,c,o)},curry5ResolveArg4=(t,e,r,n,o)=>function(c){return t(e,r,n,o,c)},curry5=function(t,e,r,n,o,c){return e==__?curry5ResolveArg0(t,r,n,o,c):r==__?curry5ResolveArg1(t,e,n,o,c):n==__?curry5ResolveArg2(t,e,r,o,c):o==__?curry5ResolveArg3(t,e,r,n,c):curry5ResolveArg4(t,e,r,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(t,e,r,n,o){const c=n.length;for(;++o<c;){const c=n[o];r=e(r,t[c],c,t),isPromise(r)&&(r=await r)}return r},objectReduce=function(t,e,r){const n=objectKeys(t),o=n.length;let c=-1;for(void 0===r&&(r=t[n[++c]]);++c<o;){const o=n[c];if(r=e(r,t[o],o,t),isPromise(r))return r.then(curry5(objectReduceAsync,t,e,__,n,c))}return r},mapReduceAsync=async function(t,e,r,n){for(const[o,c]of n)r=e(r,c,o,t),isPromise(r)&&(r=await r);return r},mapReduce=function(t,e,r){const n=t.entries();if(void 0===r){const t=n.next();if(t.done)return r;r=t.value[1]}for(const[o,c]of n)if(r=e(r,c,o,t),isPromise(r))return r.then(curry4(mapReduceAsync,t,e,__,n));return r},reducerConcat=(t,e)=>function(r,n){const o=t(r,n);return isPromise(o)?o.then(curry2(e,__,n)):e(o,n)},genericReduce=function(t,e,r){return isArray(t)?arrayReduce(t,e,r):null==t?void 0===r?curry2(e,t,__):e(r,t):t.constructor==Map?mapReduce(t,e,r):"function"==typeof t[symbolIterator]?iteratorReduce(t[symbolIterator](),e,r):"function"==typeof t[symbolAsyncIterator]?asyncIteratorReduce(t[symbolAsyncIterator](),e,r):"function"==typeof t.reduce?t.reduce(e,r):"function"==typeof t.chain?t.chain(curry2(e,r,__)):"function"==typeof t.flatMap?t.flatMap(curry2(e,r,__)):t.constructor==Object?objectReduce(t,e,r):void 0===r?curry2(e,t,__):e(r,t)},FlatMappingIterator=function(t,e){let r=[],n=0;return{[symbolIterator](){return this},next(){if(n<r.length){const t=r[n];return n+=1,{value:t,done:!1}}const o=t.next();if(o.done)return o;const c=genericReduce(e(o.value),arrayPush,[]);return c.length>1&&(r=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),sleep=t=>new Promise((e=>{setTimeout(e,t)})),FlatMappingAsyncIterator=function(t,e){const r=[],n=new Set;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||r.length>0||n.size>0;){if(!this.isAsyncIteratorDone){const{value:o,done:c}=await t.next();if(c)this.isAsyncIteratorDone=c;else{const t=e(o);if(isPromise(t)){const e=t.then(curry3(genericReduce,__,arrayPush,r)).then((()=>n.delete(e)));n.add(e)}else{const e=genericReduce(t,arrayPush,r);if(isPromise(e)){const t=e.then((()=>n.delete(t)));n.add(t)}}}}if(r.length>0)return{value:r.shift(),done:!1};n.size>0&&await promiseRace([sleep(1e3),...n])}return{value:void 0,done:!0}}}},arrayMap=function(t,e){const r=t.length,n=Array(r);let o=-1,c=!1;for(;++o<r;){const r=e(t[o],o,t);isPromise(r)&&(c=!0),n[o]=r}return c?promiseAll(n):n},arrayFlatMap=function(t,e){const r=arrayMap(t,e);return isPromise(r)?r.then(arrayFlatten):arrayFlatten(r)},promiseObjectAllExecutor=t=>function(e){const r={};let n=0;for(const o in t){const c=t[o];isPromise(c)?(n+=1,c.then((t=>function(o){r[t]=o,n-=1,0==n&&e(r)})(o))):r[o]=c}0==n&&e(r)},promiseObjectAll=t=>new Promise(promiseObjectAllExecutor(t)),objectMap=function(t,e){const r={};let n=!1;for(const o in t){const c=e(t[o],o,t);isPromise(c)&&(n=!0),r[o]=c}return n?promiseObjectAll(r):r},objectFlatMap=function(t,e){const r=objectMap(t,e);return isPromise(r)?r.then(objectFlatten):objectFlatten(r)},setMap=function(t,e){const r=new Set,n=[];for(const o of t){const c=e(o,o,t);isPromise(c)?n.push(c.then(curry3(callPropUnary,r,"add",__))):r.add(c)}return 0==n.length?r:promiseAll(n).then(always(r))},setFlatMap=function(t,e){const r=setMap(t,e);return isPromise(r)?r.then(setFlatten):setFlatten(r)},funcConcat=(t,e)=>function(...r){const n=t(...r);return isPromise(n)?n.then(e):e(n)},arrayJoin=(t,e)=>t.join(e),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(t,e){const r=arrayMap(t,e);return isPromise(r)?r.then(arrayFlattenToString):arrayFlattenToString(r)},_flatMap=function(t,e){if(isArray(t))return arrayFlatMap(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return symbolIterator in t?FlatMappingIterator(t,e):FlatMappingAsyncIterator(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const r=t.constructor;return r==Object?objectFlatMap(t,e):r==Set?setFlatMap(t,e):"string"==typeof t||r==String?stringFlatMap(t,e):e(t)},flatMap=(t,e)=>"function"==typeof t?curry2(_flatMap,__,t):isPromise(t)?t.then(curry2(_flatMap,__,e)):_flatMap(t,e),flatten=function(t){return isArray(t)?arrayFlatten(t):null==t?t:t.constructor==Set?setFlatten(t):t.constructor==Object?objectFlatten(t):flatMap(t,identity)};export default flatten;
|
|
8
|
+
const isArray=Array.isArray,__=Symbol.for("placeholder"),arrayPush=function(t,e){return t.push(e),t},always=t=>function(){return t},curry2ResolveArg0=(t,e)=>function(r){return t(r,e)},curry2ResolveArg1=(t,e)=>function(r){return t(e,r)},curry2=function(t,e,r){return e==__?curry2ResolveArg0(t,r):curry2ResolveArg1(t,e)},getArg1=(t,e)=>e,identity=t=>t,isPromise=t=>null!=t&&"function"==typeof t.then,promiseAll=Promise.all.bind(Promise),funcConcatSync=(t,e)=>function(...r){return e(t(...r))},asyncIteratorForEach=async function(t,e){const r=[];for await(const n of t){const t=e(n);isPromise(t)&&r.push(t)}return 0==r.length?t:promiseAll(r).then(always(t))},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,arrayFlatten=function(t){const e=t.length,r=[],n=[];let o=-1;for(;++o<e;){const e=t[o];if(isArray(e)){const t=e.length;let r=-1;for(;++r<t;)n.push(e[r])}else if(null==e)n.push(e);else if("function"==typeof e.then)r.push(e.then(curry2(arrayPush,n,__)));else if("function"==typeof e[symbolIterator])for(const t of e)n.push(t);else if("function"==typeof e[symbolAsyncIterator])r.push(asyncIteratorForEach(e[symbolAsyncIterator](),curry2(arrayPush,n,__)));else if("function"==typeof e.chain){const t=e.chain(identity);isPromise(t)?r.push(t.then(curry2(arrayPush,n,__))):n.push(t)}else if("function"==typeof e.flatMap){const t=e.flatMap(identity);isPromise(t)?r.push(t.then(curry2(arrayPush,n,__))):n.push(t)}else if("function"==typeof e.reduce){const t=e.reduce(funcConcatSync(getArg1,curry2(arrayPush,n,__)),null);isPromise(t)&&r.push(t)}else if(e.constructor==Object)for(const t in e)n.push(e[t]);else n.push(e)}return 0==r.length?n:promiseAll(r).then(always(n))},curry3ResolveArg0=(t,e,r)=>function(n){return t(n,e,r)},curry3ResolveArg1=(t,e,r)=>function(n){return t(e,n,r)},curry3ResolveArg2=(t,e,r)=>function(n){return t(e,r,n)},curry3=function(t,e,r,n){return e==__?curry3ResolveArg0(t,r,n):r==__?curry3ResolveArg1(t,e,n):curry3ResolveArg2(t,e,r)},callPropUnary=(t,e,r)=>t[e](r),setFlatten=function(t){t.size;const e=[],r=new Set,n=(t,e)=>r.add(e),o=curry3(callPropUnary,r,"add",__);for(const c of t)if(isArray(c)){const t=c.length;let e=-1;for(;++e<t;)r.add(c[e])}else if(null==c)r.add(c);else if("function"==typeof c[symbolIterator])for(const t of c)r.add(t);else if("function"==typeof c[symbolAsyncIterator])e.push(asyncIteratorForEach(c[symbolAsyncIterator](),o));else if("function"==typeof c.chain){const t=c.chain(identity);isPromise(t)?e.push(t.then(o)):r.add(t)}else if("function"==typeof c.flatMap){const t=c.flatMap(identity);isPromise(t)?e.push(t.then(o)):r.add(t)}else if("function"==typeof c.reduce){const t=c.reduce(n,null);isPromise(t)&&e.push(t)}else if(c.constructor==Object)for(const t in c)r.add(c[t]);else r.add(c);return 0==e.length?r:promiseAll(e).then((()=>r))},objectAssign=Object.assign,objectFlatten=function(t){const e=[],r={},n=curry2(objectAssign,r,__),o=funcConcatSync(getArg1,n);for(const c in t){const s=t[c];if(null!=s)if("function"==typeof s[symbolIterator])for(const t of s)objectAssign(r,t);else if("function"==typeof s[symbolAsyncIterator])e.push(asyncIteratorForEach(s[symbolAsyncIterator](),n));else if("function"==typeof s.chain){const t=s.chain(identity);isPromise(t)?e.push(t.then(n)):objectAssign(r,t)}else if("function"==typeof s.flatMap){const t=s.flatMap(identity);isPromise(t)?e.push(t.then(n)):n(t)}else if("function"==typeof s.reduce){const t=s.reduce(o,null);isPromise(t)&&e.push(t)}else objectAssign(r,s)}return 0==e.length?r:promiseAll(e).then((()=>r))},objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=t=>nativeObjectToString.call(t),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=t=>objectToString(t)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=t=>objectToString(t)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(t,e,r){let n=t.next();if(n.done)return r;for(;!n.done;)r=e(r,n.value),isPromise(r)&&(r=await r),n=t.next();return r},iteratorReduce=function(t,e,r){let n=t.next();if(n.done)return r;for(void 0===r&&(r=n.value,n=t.next());!n.done;){if(r=e(r,n.value),isPromise(r))return r.then(curry3(iteratorReduceAsync,t,e,__));n=t.next()}return r},asyncIteratorReduce=async function(t,e,r){let n=await t.next();if(n.done)return r;for(void 0===r&&(r=n.value,n=await t.next());!n.done;)r=await e(r,n.value),n=await t.next();return r},curryArgs3ResolveArgs0=(t,e,r)=>function(...n){return t(n,e,r)},curryArgs3ResolveArgs1=(t,e,r)=>function(...n){return t(e,n,r)},curryArgs3ResolveArgs2=(t,e,r)=>function(...n){return t(e,r,n)},curryArgs3=function(t,e,r,n){return e==__?curryArgs3ResolveArgs0(t,r,n):r==__?curryArgs3ResolveArgs1(t,e,n):curryArgs3ResolveArgs2(t,e,r)},curry4ResolveArg0=(t,e,r,n)=>function(o){return t(o,e,r,n)},curry4ResolveArg1=(t,e,r,n)=>function(o){return t(e,o,r,n)},curry4ResolveArg2=(t,e,r,n)=>function(o){return t(e,r,o,n)},curry4ResolveArg3=(t,e,r,n)=>function(o){return t(e,r,n,o)},curry4=function(t,e,r,n,o){return e==__?curry4ResolveArg0(t,r,n,o):r==__?curry4ResolveArg1(t,e,n,o):n==__?curry4ResolveArg2(t,e,r,o):curry4ResolveArg3(t,e,r,n)},arrayReduceAsync=async function(t,e,r,n){const o=t.length;for(;++n<o;)r=e(r,t[n],n,t),isPromise(r)&&(r=await r);return r},arrayReduce=function(t,e,r){const n=t.length;let o=-1;for(void 0===r&&(r=t[++o]);++o<n;)if(r=e(r,t[o],o,t),isPromise(r))return r.then(curry4(arrayReduceAsync,t,e,__,o));return r},curry5ResolveArg0=(t,e,r,n,o)=>function(c){return t(c,e,r,n,o)},curry5ResolveArg1=(t,e,r,n,o)=>function(c){return t(e,c,r,n,o)},curry5ResolveArg2=(t,e,r,n,o)=>function(c){return t(e,r,c,n,o)},curry5ResolveArg3=(t,e,r,n,o)=>function(c){return t(e,r,n,c,o)},curry5ResolveArg4=(t,e,r,n,o)=>function(c){return t(e,r,n,o,c)},curry5=function(t,e,r,n,o,c){return e==__?curry5ResolveArg0(t,r,n,o,c):r==__?curry5ResolveArg1(t,e,n,o,c):n==__?curry5ResolveArg2(t,e,r,o,c):o==__?curry5ResolveArg3(t,e,r,n,c):curry5ResolveArg4(t,e,r,n,o)},objectKeys=Object.keys,objectReduceAsync=async function(t,e,r,n,o){const c=n.length;for(;++o<c;){const c=n[o];r=e(r,t[c],c,t),isPromise(r)&&(r=await r)}return r},objectReduce=function(t,e,r){const n=objectKeys(t),o=n.length;let c=-1;for(void 0===r&&(r=t[n[++c]]);++c<o;){const o=n[c];if(r=e(r,t[o],o,t),isPromise(r))return r.then(curry5(objectReduceAsync,t,e,__,n,c))}return r},mapReduceAsync=async function(t,e,r,n){for(const[o,c]of n)r=e(r,c,o,t),isPromise(r)&&(r=await r);return r},mapReduce=function(t,e,r){const n=t.entries();if(void 0===r){const t=n.next();if(t.done)return r;r=t.value[1]}for(const[o,c]of n)if(r=e(r,c,o,t),isPromise(r))return r.then(curry4(mapReduceAsync,t,e,__,n));return r},reducerConcat=(t,e)=>function(r,n){const o=t(r,n);return isPromise(o)?o.then(curry2(e,__,n)):e(o,n)},genericReduce=function(t,e,r){return isArray(t)?arrayReduce(t,e,r):null==t?void 0===r?curry2(e,t,__):e(r,t):t.constructor==Map?mapReduce(t,e,r):"function"==typeof t[symbolIterator]?iteratorReduce(t[symbolIterator](),e,r):"function"==typeof t[symbolAsyncIterator]?asyncIteratorReduce(t[symbolAsyncIterator](),e,r):"function"==typeof t.reduce?t.reduce(e,r):"function"==typeof t.chain?t.chain(curry2(e,r,__)):"function"==typeof t.flatMap?t.flatMap(curry2(e,r,__)):t.constructor==Object?objectReduce(t,e,r):void 0===r?curry2(e,t,__):e(r,t)},FlatMappingIterator=function(t,e){let r=[],n=0;return{[symbolIterator](){return this},next(){if(n<r.length){const t=r[n];return n+=1,{value:t,done:!1}}const o=t.next();if(o.done)return o;const c=genericReduce(e(o.value),arrayPush,[]);return c.length>1&&(r=c,n=1),{value:c[0],done:!1}}}},promiseRace=Promise.race.bind(Promise),sleep=t=>new Promise((e=>{setTimeout(e,t)})),FlatMappingAsyncIterator=function(t,e){const r=[],n=new Set;let o=!1,c=!1;return{isAsyncIteratorDone:!1,[symbolAsyncIterator](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async _consumeAsyncIterator(){for await(const o of t){const t=e(o);if(isPromise(t)){const e=t.then(curry3(genericReduce,__,arrayPush,r)).then((()=>n.delete(e)));n.add(e)}else{const e=genericReduce(t,arrayPush,r);if(isPromise(e)){const t=e.then((()=>n.delete(t)));n.add(t)}}}c=!0},async next(){for(o||(this._consumeAsyncIterator(),o=!0);!c||n.size>0;){if(r.length>0)return{value:r.shift(),done:!1};n.size>0?await promiseRace(n):await sleep(10)}return r.length>0?{value:r.shift(),done:!1}:{value:void 0,done:!0}}}},arrayMap=function(t,e){const r=t.length,n=Array(r);let o=-1,c=!1;for(;++o<r;){const r=e(t[o],o,t);isPromise(r)&&(c=!0),n[o]=r}return c?promiseAll(n):n},arrayFlatMap=function(t,e){const r=arrayMap(t,e);return isPromise(r)?r.then(arrayFlatten):arrayFlatten(r)},promiseObjectAllExecutor=t=>function(e){const r={};let n=0;for(const o in t){const c=t[o];isPromise(c)?(n+=1,c.then((t=>function(o){r[t]=o,n-=1,0==n&&e(r)})(o))):r[o]=c}0==n&&e(r)},promiseObjectAll=t=>new Promise(promiseObjectAllExecutor(t)),objectMap=function(t,e){const r={};let n=!1;for(const o in t){const c=e(t[o],o,t);isPromise(c)&&(n=!0),r[o]=c}return n?promiseObjectAll(r):r},objectFlatMap=function(t,e){const r=objectMap(t,e);return isPromise(r)?r.then(objectFlatten):objectFlatten(r)},setMap=function(t,e){const r=new Set,n=[];for(const o of t){const c=e(o,o,t);isPromise(c)?n.push(c.then(curry3(callPropUnary,r,"add",__))):r.add(c)}return 0==n.length?r:promiseAll(n).then(always(r))},setFlatMap=function(t,e){const r=setMap(t,e);return isPromise(r)?r.then(setFlatten):setFlatten(r)},funcConcat=(t,e)=>function(...r){const n=t(...r);return isPromise(n)?n.then(e):e(n)},arrayJoin=(t,e)=>t.join(e),arrayFlattenToString=funcConcat(arrayFlatten,curry2(arrayJoin,__,"")),stringFlatMap=function(t,e){const r=arrayMap(t,e);return isPromise(r)?r.then(arrayFlattenToString):arrayFlattenToString(r)},_flatMap=function(t,e){if(isArray(t))return arrayFlatMap(t,e);if(null==t)return e(t);if("function"==typeof t.then)return t.then(e);if("function"==typeof t.next)return symbolIterator in t?FlatMappingIterator(t,e):FlatMappingAsyncIterator(t,e);if("function"==typeof t.chain)return t.chain(e);if("function"==typeof t.flatMap)return t.flatMap(e);const r=t.constructor;return r==Object?objectFlatMap(t,e):r==Set?setFlatMap(t,e):"string"==typeof t||r==String?stringFlatMap(t,e):e(t)},flatMap=(t,e)=>"function"==typeof t?curry2(_flatMap,__,t):isPromise(t)?t.then(curry2(_flatMap,__,e)):_flatMap(t,e),flatten=function(t){return isArray(t)?arrayFlatten(t):null==t?t:t.constructor==Set?setFlatten(t):t.constructor==Object?objectFlatten(t):flatMap(t,identity)};export default flatten;
|
package/dist/x/flatten.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
|
|
@@ -217,9 +217,12 @@ const objectFlatten = function (object) {
|
|
|
217
217
|
|
|
218
218
|
for (const key in object) {
|
|
219
219
|
const element = object[key]
|
|
220
|
+
|
|
220
221
|
if (element == null) {
|
|
221
222
|
continue
|
|
222
|
-
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
if (typeof element[symbolIterator] == 'function') {
|
|
223
226
|
for (const monadElement of element) {
|
|
224
227
|
objectAssign(result, monadElement)
|
|
225
228
|
}
|
|
@@ -619,8 +622,11 @@ const sleep = time => new Promise(resolve => {
|
|
|
619
622
|
})
|
|
620
623
|
|
|
621
624
|
const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
622
|
-
const buffer = []
|
|
623
|
-
|
|
625
|
+
const buffer = []
|
|
626
|
+
const promises = new Set()
|
|
627
|
+
|
|
628
|
+
let consumingAsyncIterator = false
|
|
629
|
+
let isAsyncIteratorDone = false
|
|
624
630
|
|
|
625
631
|
return {
|
|
626
632
|
isAsyncIteratorDone: false,
|
|
@@ -631,38 +637,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
631
637
|
return '[object FlatMappingAsyncIterator]'
|
|
632
638
|
},
|
|
633
639
|
|
|
634
|
-
|
|
635
|
-
async
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
649
|
-
promises.add(promise)
|
|
650
|
-
} else {
|
|
651
|
-
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
652
|
-
if (isPromise(bufferLoading)) {
|
|
653
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
654
|
-
promises.add(promise)
|
|
655
|
-
}
|
|
656
|
-
}
|
|
640
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
641
|
+
async _consumeAsyncIterator() {
|
|
642
|
+
for await (const item of asyncIterator) {
|
|
643
|
+
const monad = flatMapper(item)
|
|
644
|
+
if (isPromise(monad)) {
|
|
645
|
+
const bufferLoading =
|
|
646
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
647
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
648
|
+
promises.add(promise)
|
|
649
|
+
} else {
|
|
650
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
651
|
+
if (isPromise(bufferLoading)) {
|
|
652
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
653
|
+
promises.add(promise)
|
|
657
654
|
}
|
|
658
655
|
}
|
|
656
|
+
}
|
|
657
|
+
isAsyncIteratorDone = true
|
|
658
|
+
},
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
async next() {
|
|
662
|
+
if (!consumingAsyncIterator) {
|
|
663
|
+
this._consumeAsyncIterator()
|
|
664
|
+
consumingAsyncIterator = true
|
|
665
|
+
}
|
|
666
|
+
|
|
667
|
+
while (!isAsyncIteratorDone || promises.size > 0) {
|
|
659
668
|
if (buffer.length > 0) {
|
|
660
669
|
return { value: buffer.shift(), done: false }
|
|
661
670
|
}
|
|
662
671
|
if (promises.size > 0) {
|
|
663
|
-
await promiseRace(
|
|
672
|
+
await promiseRace(promises)
|
|
673
|
+
} else {
|
|
674
|
+
await sleep(10)
|
|
664
675
|
}
|
|
665
676
|
}
|
|
677
|
+
|
|
678
|
+
if (buffer.length > 0) {
|
|
679
|
+
return { value: buffer.shift(), done: false }
|
|
680
|
+
}
|
|
681
|
+
|
|
666
682
|
return { value: undefined, done: true }
|
|
667
683
|
},
|
|
668
684
|
}
|
package/dist/x/flatten.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.flatten=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=Symbol.for("placeholder"),e=function(n,t){return n.push(t),n},o=n=>function(){return n},r=function(n,e,o){return e==t?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,e)},u=(n,t)=>t,c=n=>n,f=n=>null!=n&&"function"==typeof n.then,i=Promise.all.bind(Promise),s=(n,t)=>function(...e){return t(n(...e))},l=async function(n,t){const e=[];for await(const o of n){const n=t(o);f(n)&&e.push(n)}return 0==e.length?n:i(e).then(o(n))},a=Symbol.iterator,h=Symbol.asyncIterator,p=function(p){const d=p.length,y=[],g=[];let v=-1;for(;++v<d;){const o=p[v];if(n(o)){const n=o.length;let t=-1;for(;++t<n;)g.push(o[t])}else if(null==o)g.push(o);else if("function"==typeof o.then)y.push(o.then(r(e,g,t)));else if("function"==typeof o[a])for(const n of o)g.push(n);else if("function"==typeof o[h])y.push(l(o[h](),r(e,g,t)));else if("function"==typeof o.chain){const n=o.chain(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.flatMap){const n=o.flatMap(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.reduce){const n=o.reduce(s(u,r(e,g,t)),null);f(n)&&y.push(n)}else if(o.constructor==Object)for(const n in o)g.push(o[n]);else g.push(o)}return 0==y.length?g:i(y).then(o(g))},d=function(n,e,o,r){return e==t?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==t?((n,t,e)=>function(o){return n(t,o,e)})(n,e,r):((n,t,e)=>function(o){return n(t,e,o)})(n,e,o)},y=(n,t,e)=>n[t](e),g=function(e){e.size;const o=[],r=new Set,u=(n,t)=>r.add(t),s=d(y,r,"add",t);for(const t of e)if(n(t)){const n=t.length;let e=-1;for(;++e<n;)r.add(t[e])}else if(null==t)r.add(t);else if("function"==typeof t[a])for(const n of t)r.add(n);else if("function"==typeof t[h])o.push(l(t[h](),s));else if("function"==typeof t.chain){const n=t.chain(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.flatMap){const n=t.flatMap(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.reduce){const n=t.reduce(u,null);f(n)&&o.push(n)}else if(t.constructor==Object)for(const n in t)r.add(t[n]);else r.add(t);return 0==o.length?r:i(o).then((()=>r))},v=Object.assign,b=function(n){const e=[],o={},p=r(v,o,t),d=s(u,p);for(const t in n){const r=n[t];if(null!=r)if("function"==typeof r[a])for(const n of r)v(o,n);else if("function"==typeof r[h])e.push(l(r[h](),p));else if("function"==typeof r.chain){const n=r.chain(c);f(n)?e.push(n.then(p)):v(o,n)}else if("function"==typeof r.flatMap){const n=r.flatMap(c);f(n)?e.push(n.then(p)):p(n)}else if("function"==typeof r.reduce){const n=r.reduce(d,null);f(n)&&e.push(n)}else v(o,r)}return 0==e.length?o:i(e).then((()=>o))},w=(Object.values,Object.prototype.toString,async function(n,t,e){let o=n.next();if(o.done)return e;for(;!o.done;)e=t(e,o.value),f(e)&&(e=await e),o=n.next();return e}),
|
|
9
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.flatten=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=Symbol.for("placeholder"),e=function(n,t){return n.push(t),n},o=n=>function(){return n},r=function(n,e,o){return e==t?((n,t)=>function(e){return n(e,t)})(n,o):((n,t)=>function(e){return n(t,e)})(n,e)},u=(n,t)=>t,c=n=>n,f=n=>null!=n&&"function"==typeof n.then,i=Promise.all.bind(Promise),s=(n,t)=>function(...e){return t(n(...e))},l=async function(n,t){const e=[];for await(const o of n){const n=t(o);f(n)&&e.push(n)}return 0==e.length?n:i(e).then(o(n))},a=Symbol.iterator,h=Symbol.asyncIterator,p=function(p){const d=p.length,y=[],g=[];let v=-1;for(;++v<d;){const o=p[v];if(n(o)){const n=o.length;let t=-1;for(;++t<n;)g.push(o[t])}else if(null==o)g.push(o);else if("function"==typeof o.then)y.push(o.then(r(e,g,t)));else if("function"==typeof o[a])for(const n of o)g.push(n);else if("function"==typeof o[h])y.push(l(o[h](),r(e,g,t)));else if("function"==typeof o.chain){const n=o.chain(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.flatMap){const n=o.flatMap(c);f(n)?y.push(n.then(r(e,g,t))):g.push(n)}else if("function"==typeof o.reduce){const n=o.reduce(s(u,r(e,g,t)),null);f(n)&&y.push(n)}else if(o.constructor==Object)for(const n in o)g.push(o[n]);else g.push(o)}return 0==y.length?g:i(y).then(o(g))},d=function(n,e,o,r){return e==t?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==t?((n,t,e)=>function(o){return n(t,o,e)})(n,e,r):((n,t,e)=>function(o){return n(t,e,o)})(n,e,o)},y=(n,t,e)=>n[t](e),g=function(e){e.size;const o=[],r=new Set,u=(n,t)=>r.add(t),s=d(y,r,"add",t);for(const t of e)if(n(t)){const n=t.length;let e=-1;for(;++e<n;)r.add(t[e])}else if(null==t)r.add(t);else if("function"==typeof t[a])for(const n of t)r.add(n);else if("function"==typeof t[h])o.push(l(t[h](),s));else if("function"==typeof t.chain){const n=t.chain(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.flatMap){const n=t.flatMap(c);f(n)?o.push(n.then(s)):r.add(n)}else if("function"==typeof t.reduce){const n=t.reduce(u,null);f(n)&&o.push(n)}else if(t.constructor==Object)for(const n in t)r.add(t[n]);else r.add(t);return 0==o.length?r:i(o).then((()=>r))},v=Object.assign,b=function(n){const e=[],o={},p=r(v,o,t),d=s(u,p);for(const t in n){const r=n[t];if(null!=r)if("function"==typeof r[a])for(const n of r)v(o,n);else if("function"==typeof r[h])e.push(l(r[h](),p));else if("function"==typeof r.chain){const n=r.chain(c);f(n)?e.push(n.then(p)):v(o,n)}else if("function"==typeof r.flatMap){const n=r.flatMap(c);f(n)?e.push(n.then(p)):p(n)}else if("function"==typeof r.reduce){const n=r.reduce(d,null);f(n)&&e.push(n)}else v(o,r)}return 0==e.length?o:i(e).then((()=>o))},w=(Object.values,Object.prototype.toString,async function(n,t,e){let o=n.next();if(o.done)return e;for(;!o.done;)e=t(e,o.value),f(e)&&(e=await e),o=n.next();return e}),m=function(n,e,o,r,u){return e==t?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,o,r,u):o==t?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,e,r,u):r==t?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,e,o,u):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,e,o,r)},x=async function(n,t,e,o){const r=n.length;for(;++o<r;)e=t(e,n[o],o,n),f(e)&&(e=await e);return e},j=Object.keys,M=async function(n,t,e,o,r){const u=o.length;for(;++r<u;){const u=o[r];e=t(e,n[u],u,n),f(e)&&(e=await e)}return e},S=async function(n,t,e,o){for(const[r,u]of o)e=t(e,u,r,n),f(e)&&(e=await e);return e},O=function(e,o,u){return n(e)?function(n,e,o){const r=n.length;let u=-1;for(void 0===o&&(o=n[++u]);++u<r;)if(o=e(o,n[u],u,n),f(o))return o.then(m(x,n,e,t,u));return o}(e,o,u):null==e?void 0===u?r(o,e,t):o(u,e):e.constructor==Map?function(n,e,o){const r=n.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[u,c]of r)if(o=e(o,c,u,n),f(o))return o.then(m(S,n,e,t,r));return o}(e,o,u):"function"==typeof e[a]?function(n,e,o){let r=n.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=n.next());!r.done;){if(o=e(o,r.value),f(o))return o.then(d(w,n,e,t));r=n.next()}return o}(e[a](),o,u):"function"==typeof e[h]?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}(e[h](),o,u):"function"==typeof e.reduce?e.reduce(o,u):"function"==typeof e.chain?e.chain(r(o,u,t)):"function"==typeof e.flatMap?e.flatMap(r(o,u,t)):e.constructor==Object?function(n,e,o){const r=j(n),u=r.length;let c=-1;for(void 0===o&&(o=n[r[++c]]);++c<u;){const u=r[c];if(o=e(o,n[u],u,n),f(o))return o.then((i=M,l=e,a=t,h=r,p=c,(s=n)==t?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,a,h,p):l==t?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,a,h,p):a==t?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,h,p):h==t?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,a,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,a,h)))}var i,s,l,a,h,p;return o}(e,o,u):void 0===u?r(o,e,t):o(u,e)},A=Promise.race.bind(Promise),P=n=>new Promise((t=>{setTimeout(t,n)})),I=function(n,t){const e=n.length,o=Array(e);let r=-1,u=!1;for(;++r<e;){const e=t(n[r],r,n);f(e)&&(u=!0),o[r]=e}return u?i(o):o},z=n=>new Promise((n=>function(t){const e={};let o=0;for(const r in n){const u=n[r];f(u)?(o+=1,u.then((n=>function(r){e[n]=r,o-=1,0==o&&t(e)})(r))):e[r]=u}0==o&&t(e)})(n)),T=function(n,t){const e=function(n,t){const e={};let o=!1;for(const r in n){const u=t(n[r],r,n);f(u)&&(o=!0),e[r]=u}return o?z(e):e}(n,t);return f(e)?e.then(b):b(e)},_=function(n,e){const r=function(n,e){const r=new Set,u=[];for(const o of n){const c=e(o,o,n);f(c)?u.push(c.then(d(y,r,"add",t))):r.add(c)}return 0==u.length?r:i(u).then(o(r))}(n,e);return f(r)?r.then(g):g(r)},k=(D=p,F=r(((n,t)=>n.join(t)),t,""),function(...n){const t=D(...n);return f(t)?t.then(F):F(t)});var D,F;const q=function(o,r){if(n(o))return function(n,t){const e=I(n,t);return f(e)?e.then(p):p(e)}(o,r);if(null==o)return r(o);if("function"==typeof o.then)return o.then(r);if("function"==typeof o.next)return a in o?function(n,t){let o=[],r=0;return{[a](){return this},next(){if(r<o.length){const n=o[r];return r+=1,{value:n,done:!1}}const u=n.next();if(u.done)return u;const c=O(t(u.value),e,[]);return c.length>1&&(o=c,r=1),{value:c[0],done:!1}}}}(o,r):function(n,o){const r=[],u=new Set;let c=!1,i=!1;return{isAsyncIteratorDone:!1,[h](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async _consumeAsyncIterator(){for await(const c of n){const n=o(c);if(f(n)){const o=n.then(d(O,t,e,r)).then((()=>u.delete(o)));u.add(o)}else{const t=O(n,e,r);if(f(t)){const n=t.then((()=>u.delete(n)));u.add(n)}}}i=!0},async next(){for(c||(this._consumeAsyncIterator(),c=!0);!i||u.size>0;){if(r.length>0)return{value:r.shift(),done:!1};u.size>0?await A(u):await P(10)}return r.length>0?{value:r.shift(),done:!1}:{value:void 0,done:!0}}}}(o,r);if("function"==typeof o.chain)return o.chain(r);if("function"==typeof o.flatMap)return o.flatMap(r);const u=o.constructor;return u==Object?T(o,r):u==Set?_(o,r):"string"==typeof o||u==String?function(n,t){const e=I(n,t);return f(e)?e.then(k):k(e)}(o,r):r(o)};return function(e){return n(e)?p(e):null==e?e:e.constructor==Set?g(e):e.constructor==Object?b(e):(u=c,"function"==typeof(o=e)?r(q,t,o):f(o)?o.then(r(q,t,u)):q(o,u));var o,u}}());
|
package/dist/x/flatten.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
|
|
@@ -211,9 +211,12 @@ const objectFlatten = function (object) {
|
|
|
211
211
|
|
|
212
212
|
for (const key in object) {
|
|
213
213
|
const element = object[key]
|
|
214
|
+
|
|
214
215
|
if (element == null) {
|
|
215
216
|
continue
|
|
216
|
-
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
if (typeof element[symbolIterator] == 'function') {
|
|
217
220
|
for (const monadElement of element) {
|
|
218
221
|
objectAssign(result, monadElement)
|
|
219
222
|
}
|
|
@@ -613,8 +616,11 @@ const sleep = time => new Promise(resolve => {
|
|
|
613
616
|
})
|
|
614
617
|
|
|
615
618
|
const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
616
|
-
const buffer = []
|
|
617
|
-
|
|
619
|
+
const buffer = []
|
|
620
|
+
const promises = new Set()
|
|
621
|
+
|
|
622
|
+
let consumingAsyncIterator = false
|
|
623
|
+
let isAsyncIteratorDone = false
|
|
618
624
|
|
|
619
625
|
return {
|
|
620
626
|
isAsyncIteratorDone: false,
|
|
@@ -625,38 +631,48 @@ const FlatMappingAsyncIterator = function (asyncIterator, flatMapper) {
|
|
|
625
631
|
return '[object FlatMappingAsyncIterator]'
|
|
626
632
|
},
|
|
627
633
|
|
|
628
|
-
|
|
629
|
-
async
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
643
|
-
promises.add(promise)
|
|
644
|
-
} else {
|
|
645
|
-
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
646
|
-
if (isPromise(bufferLoading)) {
|
|
647
|
-
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
648
|
-
promises.add(promise)
|
|
649
|
-
}
|
|
650
|
-
}
|
|
634
|
+
// _consumeAsyncIterator() -> Promise<>
|
|
635
|
+
async _consumeAsyncIterator() {
|
|
636
|
+
for await (const item of asyncIterator) {
|
|
637
|
+
const monad = flatMapper(item)
|
|
638
|
+
if (isPromise(monad)) {
|
|
639
|
+
const bufferLoading =
|
|
640
|
+
monad.then(curry3(genericReduce, __, arrayPush, buffer))
|
|
641
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
642
|
+
promises.add(promise)
|
|
643
|
+
} else {
|
|
644
|
+
const bufferLoading = genericReduce(monad, arrayPush, buffer)
|
|
645
|
+
if (isPromise(bufferLoading)) {
|
|
646
|
+
const promise = bufferLoading.then(() => promises.delete(promise))
|
|
647
|
+
promises.add(promise)
|
|
651
648
|
}
|
|
652
649
|
}
|
|
650
|
+
}
|
|
651
|
+
isAsyncIteratorDone = true
|
|
652
|
+
},
|
|
653
|
+
|
|
654
|
+
|
|
655
|
+
async next() {
|
|
656
|
+
if (!consumingAsyncIterator) {
|
|
657
|
+
this._consumeAsyncIterator()
|
|
658
|
+
consumingAsyncIterator = true
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
while (!isAsyncIteratorDone || promises.size > 0) {
|
|
653
662
|
if (buffer.length > 0) {
|
|
654
663
|
return { value: buffer.shift(), done: false }
|
|
655
664
|
}
|
|
656
665
|
if (promises.size > 0) {
|
|
657
|
-
await promiseRace(
|
|
666
|
+
await promiseRace(promises)
|
|
667
|
+
} else {
|
|
668
|
+
await sleep(10)
|
|
658
669
|
}
|
|
659
670
|
}
|
|
671
|
+
|
|
672
|
+
if (buffer.length > 0) {
|
|
673
|
+
return { value: buffer.shift(), done: false }
|
|
674
|
+
}
|
|
675
|
+
|
|
660
676
|
return { value: undefined, done: true }
|
|
661
677
|
},
|
|
662
678
|
}
|
package/dist/x/groupBy.es.js
CHANGED
package/dist/x/groupBy.es.min.js
CHANGED
package/dist/x/groupBy.js
CHANGED
package/dist/x/groupBy.min.js
CHANGED
package/dist/x/groupBy.mjs
CHANGED
package/dist/x/has.es.js
CHANGED
package/dist/x/has.es.min.js
CHANGED
package/dist/x/has.js
CHANGED
package/dist/x/has.min.js
CHANGED
package/dist/x/has.mjs
CHANGED
package/dist/x/identity.es.js
CHANGED
package/dist/x/identity.js
CHANGED
package/dist/x/identity.min.js
CHANGED
package/dist/x/identity.mjs
CHANGED
package/dist/x/includes.es.js
CHANGED
package/dist/x/includes.js
CHANGED
package/dist/x/includes.min.js
CHANGED
package/dist/x/includes.mjs
CHANGED
package/dist/x/isDeepEqual.es.js
CHANGED
package/dist/x/isDeepEqual.js
CHANGED
package/dist/x/isDeepEqual.mjs
CHANGED
package/dist/x/isEmpty.es.js
CHANGED
package/dist/x/isEmpty.es.min.js
CHANGED
package/dist/x/isEmpty.js
CHANGED
package/dist/x/isEmpty.min.js
CHANGED
package/dist/x/isEmpty.mjs
CHANGED
package/dist/x/isEqual.es.js
CHANGED
package/dist/x/isEqual.es.min.js
CHANGED
package/dist/x/isEqual.js
CHANGED
package/dist/x/isEqual.min.js
CHANGED
package/dist/x/isEqual.mjs
CHANGED
package/dist/x/isFunction.es.js
CHANGED
package/dist/x/isFunction.js
CHANGED
package/dist/x/isFunction.min.js
CHANGED