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.
Files changed (378) hide show
  1. package/README.md +1 -1
  2. package/_internal/FlatMappingAsyncIterator.js +41 -30
  3. package/_internal/LinkedList.js +54 -0
  4. package/_internal/LinkedList.test.js +34 -0
  5. package/_internal/MappingAsyncIterator.js +65 -15
  6. package/_internal/SerialMappingAsyncIterator.js +79 -0
  7. package/_internal/iteratorFind.js +0 -2
  8. package/_internal/iteratorForEachSeries.js +1 -1
  9. package/_internal/objectFlatten.js +4 -1
  10. package/all.js +7 -8
  11. package/and.js +1 -1
  12. package/assign.js +1 -1
  13. package/compose.js +1 -1
  14. package/curry.js +1 -1
  15. package/dist/Transducer.es.js +1 -1
  16. package/dist/Transducer.es.min.js +1 -1
  17. package/dist/Transducer.js +1 -1
  18. package/dist/Transducer.min.js +1 -1
  19. package/dist/Transducer.mjs +1 -1
  20. package/dist/__.es.js +1 -1
  21. package/dist/__.es.min.js +1 -1
  22. package/dist/__.js +1 -1
  23. package/dist/__.min.js +1 -1
  24. package/dist/__.mjs +1 -1
  25. package/dist/all.es.js +1 -1
  26. package/dist/all.es.min.js +1 -1
  27. package/dist/all.js +1 -1
  28. package/dist/all.min.js +1 -1
  29. package/dist/all.mjs +1 -1
  30. package/dist/always.es.js +1 -1
  31. package/dist/always.es.min.js +1 -1
  32. package/dist/always.js +1 -1
  33. package/dist/always.min.js +1 -1
  34. package/dist/always.mjs +1 -1
  35. package/dist/and.es.js +1 -1
  36. package/dist/and.es.min.js +1 -1
  37. package/dist/and.js +1 -1
  38. package/dist/and.min.js +1 -1
  39. package/dist/and.mjs +1 -1
  40. package/dist/assign.es.js +1 -1
  41. package/dist/assign.es.min.js +1 -1
  42. package/dist/assign.js +1 -1
  43. package/dist/assign.min.js +1 -1
  44. package/dist/assign.mjs +1 -1
  45. package/dist/compose.es.js +1 -1
  46. package/dist/compose.es.min.js +1 -1
  47. package/dist/compose.js +1 -1
  48. package/dist/compose.min.js +1 -1
  49. package/dist/compose.mjs +1 -1
  50. package/dist/curry.es.js +1 -1
  51. package/dist/curry.es.min.js +1 -1
  52. package/dist/curry.js +1 -1
  53. package/dist/curry.min.js +1 -1
  54. package/dist/curry.mjs +1 -1
  55. package/dist/eq.es.js +1 -1
  56. package/dist/eq.es.min.js +1 -1
  57. package/dist/eq.js +1 -1
  58. package/dist/eq.min.js +1 -1
  59. package/dist/eq.mjs +1 -1
  60. package/dist/every.es.js +1 -1
  61. package/dist/every.es.min.js +1 -1
  62. package/dist/every.js +1 -1
  63. package/dist/every.min.js +1 -1
  64. package/dist/every.mjs +1 -1
  65. package/dist/filter.es.js +4 -4
  66. package/dist/filter.es.min.js +2 -2
  67. package/dist/filter.js +4 -4
  68. package/dist/filter.min.js +2 -2
  69. package/dist/filter.mjs +4 -4
  70. package/dist/flatMap.es.js +44 -28
  71. package/dist/flatMap.es.min.js +2 -2
  72. package/dist/flatMap.js +44 -28
  73. package/dist/flatMap.min.js +2 -2
  74. package/dist/flatMap.mjs +44 -28
  75. package/dist/forEach.es.js +6 -6
  76. package/dist/forEach.es.min.js +2 -2
  77. package/dist/forEach.js +6 -6
  78. package/dist/forEach.min.js +2 -2
  79. package/dist/forEach.mjs +6 -6
  80. package/dist/get.es.js +1 -1
  81. package/dist/get.es.min.js +1 -1
  82. package/dist/get.js +1 -1
  83. package/dist/get.min.js +1 -1
  84. package/dist/get.mjs +1 -1
  85. package/dist/gt.es.js +1 -1
  86. package/dist/gt.es.min.js +1 -1
  87. package/dist/gt.js +1 -1
  88. package/dist/gt.min.js +1 -1
  89. package/dist/gt.mjs +1 -1
  90. package/dist/gte.es.js +1 -1
  91. package/dist/gte.es.min.js +1 -1
  92. package/dist/gte.js +1 -1
  93. package/dist/gte.min.js +1 -1
  94. package/dist/gte.mjs +1 -1
  95. package/dist/lt.es.js +1 -1
  96. package/dist/lt.es.min.js +1 -1
  97. package/dist/lt.js +1 -1
  98. package/dist/lt.min.js +1 -1
  99. package/dist/lt.mjs +1 -1
  100. package/dist/lte.es.js +1 -1
  101. package/dist/lte.es.min.js +1 -1
  102. package/dist/lte.js +1 -1
  103. package/dist/lte.min.js +1 -1
  104. package/dist/lte.mjs +1 -1
  105. package/dist/map.es.js +187 -39
  106. package/dist/map.es.min.js +2 -2
  107. package/dist/map.js +187 -39
  108. package/dist/map.min.js +2 -2
  109. package/dist/map.mjs +187 -39
  110. package/dist/not.es.js +1 -1
  111. package/dist/not.es.min.js +1 -1
  112. package/dist/not.js +1 -1
  113. package/dist/not.min.js +1 -1
  114. package/dist/not.mjs +1 -1
  115. package/dist/omit.es.js +1 -1
  116. package/dist/omit.es.min.js +1 -1
  117. package/dist/omit.js +1 -1
  118. package/dist/omit.min.js +1 -1
  119. package/dist/omit.mjs +1 -1
  120. package/dist/or.es.js +1 -1
  121. package/dist/or.es.min.js +1 -1
  122. package/dist/or.js +1 -1
  123. package/dist/or.min.js +1 -1
  124. package/dist/or.mjs +1 -1
  125. package/dist/pick.es.js +1 -1
  126. package/dist/pick.es.min.js +1 -1
  127. package/dist/pick.js +1 -1
  128. package/dist/pick.min.js +1 -1
  129. package/dist/pick.mjs +1 -1
  130. package/dist/pipe.es.js +1 -1
  131. package/dist/pipe.es.min.js +1 -1
  132. package/dist/pipe.js +1 -1
  133. package/dist/pipe.min.js +1 -1
  134. package/dist/pipe.mjs +1 -1
  135. package/dist/reduce.es.js +1 -1
  136. package/dist/reduce.es.min.js +1 -1
  137. package/dist/reduce.js +1 -1
  138. package/dist/reduce.min.js +1 -1
  139. package/dist/reduce.mjs +1 -1
  140. package/dist/rubico.es.js +233 -78
  141. package/dist/rubico.es.min.js +2 -2
  142. package/dist/rubico.global.js +233 -78
  143. package/dist/rubico.global.min.js +2 -2
  144. package/dist/rubico.js +233 -78
  145. package/dist/rubico.min.js +2 -2
  146. package/dist/rubico.mjs +233 -78
  147. package/dist/set.es.js +1 -1
  148. package/dist/set.es.min.js +1 -1
  149. package/dist/set.js +1 -1
  150. package/dist/set.min.js +1 -1
  151. package/dist/set.mjs +1 -1
  152. package/dist/some.es.js +1 -1
  153. package/dist/some.es.min.js +1 -1
  154. package/dist/some.js +1 -1
  155. package/dist/some.min.js +1 -1
  156. package/dist/some.mjs +1 -1
  157. package/dist/switchCase.es.js +1 -1
  158. package/dist/switchCase.es.min.js +1 -1
  159. package/dist/switchCase.js +1 -1
  160. package/dist/switchCase.min.js +1 -1
  161. package/dist/switchCase.mjs +1 -1
  162. package/dist/tap.es.js +1 -1
  163. package/dist/tap.es.min.js +1 -1
  164. package/dist/tap.js +1 -1
  165. package/dist/tap.min.js +1 -1
  166. package/dist/tap.mjs +1 -1
  167. package/dist/thunkify.es.js +1 -1
  168. package/dist/thunkify.es.min.js +1 -1
  169. package/dist/thunkify.js +1 -1
  170. package/dist/thunkify.min.js +1 -1
  171. package/dist/thunkify.mjs +1 -1
  172. package/dist/transform.es.js +1 -1
  173. package/dist/transform.es.min.js +1 -1
  174. package/dist/transform.js +1 -1
  175. package/dist/transform.min.js +1 -1
  176. package/dist/transform.mjs +1 -1
  177. package/dist/tryCatch.es.js +1 -1
  178. package/dist/tryCatch.es.min.js +1 -1
  179. package/dist/tryCatch.js +1 -1
  180. package/dist/tryCatch.min.js +1 -1
  181. package/dist/tryCatch.mjs +1 -1
  182. package/dist/x/append.es.js +1 -1
  183. package/dist/x/append.es.min.js +1 -1
  184. package/dist/x/append.js +1 -1
  185. package/dist/x/append.min.js +1 -1
  186. package/dist/x/append.mjs +1 -1
  187. package/dist/x/callProp.es.js +1 -1
  188. package/dist/x/callProp.es.min.js +1 -1
  189. package/dist/x/callProp.js +1 -1
  190. package/dist/x/callProp.min.js +1 -1
  191. package/dist/x/callProp.mjs +1 -1
  192. package/dist/x/defaultsDeep.es.js +1 -1
  193. package/dist/x/defaultsDeep.es.min.js +1 -1
  194. package/dist/x/defaultsDeep.js +1 -1
  195. package/dist/x/defaultsDeep.min.js +1 -1
  196. package/dist/x/defaultsDeep.mjs +1 -1
  197. package/dist/x/differenceWith.es.js +1 -1
  198. package/dist/x/differenceWith.es.min.js +1 -1
  199. package/dist/x/differenceWith.js +1 -1
  200. package/dist/x/differenceWith.min.js +1 -1
  201. package/dist/x/differenceWith.mjs +1 -1
  202. package/dist/x/filterOut.es.js +4 -4
  203. package/dist/x/filterOut.es.min.js +2 -2
  204. package/dist/x/filterOut.js +4 -4
  205. package/dist/x/filterOut.min.js +2 -2
  206. package/dist/x/filterOut.mjs +4 -4
  207. package/dist/x/find.es.js +1 -3
  208. package/dist/x/find.es.min.js +1 -1
  209. package/dist/x/find.js +1 -3
  210. package/dist/x/find.min.js +1 -1
  211. package/dist/x/find.mjs +1 -3
  212. package/dist/x/findIndex.es.js +1 -1
  213. package/dist/x/findIndex.es.min.js +1 -1
  214. package/dist/x/findIndex.js +1 -1
  215. package/dist/x/findIndex.min.js +1 -1
  216. package/dist/x/findIndex.mjs +1 -1
  217. package/dist/x/first.es.js +1 -1
  218. package/dist/x/first.es.min.js +1 -1
  219. package/dist/x/first.js +1 -1
  220. package/dist/x/first.min.js +1 -1
  221. package/dist/x/first.mjs +1 -1
  222. package/dist/x/flatten.es.js +44 -28
  223. package/dist/x/flatten.es.min.js +2 -2
  224. package/dist/x/flatten.js +44 -28
  225. package/dist/x/flatten.min.js +2 -2
  226. package/dist/x/flatten.mjs +44 -28
  227. package/dist/x/groupBy.es.js +1 -1
  228. package/dist/x/groupBy.es.min.js +1 -1
  229. package/dist/x/groupBy.js +1 -1
  230. package/dist/x/groupBy.min.js +1 -1
  231. package/dist/x/groupBy.mjs +1 -1
  232. package/dist/x/has.es.js +1 -1
  233. package/dist/x/has.es.min.js +1 -1
  234. package/dist/x/has.js +1 -1
  235. package/dist/x/has.min.js +1 -1
  236. package/dist/x/has.mjs +1 -1
  237. package/dist/x/identity.es.js +1 -1
  238. package/dist/x/identity.es.min.js +1 -1
  239. package/dist/x/identity.js +1 -1
  240. package/dist/x/identity.min.js +1 -1
  241. package/dist/x/identity.mjs +1 -1
  242. package/dist/x/includes.es.js +1 -1
  243. package/dist/x/includes.es.min.js +1 -1
  244. package/dist/x/includes.js +1 -1
  245. package/dist/x/includes.min.js +1 -1
  246. package/dist/x/includes.mjs +1 -1
  247. package/dist/x/isDeepEqual.es.js +1 -1
  248. package/dist/x/isDeepEqual.es.min.js +1 -1
  249. package/dist/x/isDeepEqual.js +1 -1
  250. package/dist/x/isDeepEqual.min.js +1 -1
  251. package/dist/x/isDeepEqual.mjs +1 -1
  252. package/dist/x/isEmpty.es.js +1 -1
  253. package/dist/x/isEmpty.es.min.js +1 -1
  254. package/dist/x/isEmpty.js +1 -1
  255. package/dist/x/isEmpty.min.js +1 -1
  256. package/dist/x/isEmpty.mjs +1 -1
  257. package/dist/x/isEqual.es.js +1 -1
  258. package/dist/x/isEqual.es.min.js +1 -1
  259. package/dist/x/isEqual.js +1 -1
  260. package/dist/x/isEqual.min.js +1 -1
  261. package/dist/x/isEqual.mjs +1 -1
  262. package/dist/x/isFunction.es.js +1 -1
  263. package/dist/x/isFunction.es.min.js +1 -1
  264. package/dist/x/isFunction.js +1 -1
  265. package/dist/x/isFunction.min.js +1 -1
  266. package/dist/x/isFunction.mjs +1 -1
  267. package/dist/x/isIn.es.js +1 -1
  268. package/dist/x/isIn.es.min.js +1 -1
  269. package/dist/x/isIn.js +1 -1
  270. package/dist/x/isIn.min.js +1 -1
  271. package/dist/x/isIn.mjs +1 -1
  272. package/dist/x/isObject.es.js +1 -1
  273. package/dist/x/isObject.es.min.js +1 -1
  274. package/dist/x/isObject.js +1 -1
  275. package/dist/x/isObject.min.js +1 -1
  276. package/dist/x/isObject.mjs +1 -1
  277. package/dist/x/isString.es.js +1 -1
  278. package/dist/x/isString.es.min.js +1 -1
  279. package/dist/x/isString.js +1 -1
  280. package/dist/x/isString.min.js +1 -1
  281. package/dist/x/isString.mjs +1 -1
  282. package/dist/x/keys.es.js +1 -1
  283. package/dist/x/keys.es.min.js +1 -1
  284. package/dist/x/keys.js +1 -1
  285. package/dist/x/keys.min.js +1 -1
  286. package/dist/x/keys.mjs +1 -1
  287. package/dist/x/last.es.js +1 -1
  288. package/dist/x/last.es.min.js +1 -1
  289. package/dist/x/last.js +1 -1
  290. package/dist/x/last.min.js +1 -1
  291. package/dist/x/last.mjs +1 -1
  292. package/dist/x/maxBy.es.js +1 -1
  293. package/dist/x/maxBy.es.min.js +1 -1
  294. package/dist/x/maxBy.js +1 -1
  295. package/dist/x/maxBy.min.js +1 -1
  296. package/dist/x/maxBy.mjs +1 -1
  297. package/dist/x/noop.es.js +1 -1
  298. package/dist/x/noop.es.min.js +1 -1
  299. package/dist/x/noop.js +1 -1
  300. package/dist/x/noop.min.js +1 -1
  301. package/dist/x/noop.mjs +1 -1
  302. package/dist/x/pluck.es.js +187 -39
  303. package/dist/x/pluck.es.min.js +2 -2
  304. package/dist/x/pluck.js +187 -39
  305. package/dist/x/pluck.min.js +2 -2
  306. package/dist/x/pluck.mjs +187 -39
  307. package/dist/x/prepend.es.js +1 -1
  308. package/dist/x/prepend.es.min.js +1 -1
  309. package/dist/x/prepend.js +1 -1
  310. package/dist/x/prepend.min.js +1 -1
  311. package/dist/x/prepend.mjs +1 -1
  312. package/dist/x/size.es.js +1 -1
  313. package/dist/x/size.es.min.js +1 -1
  314. package/dist/x/size.js +1 -1
  315. package/dist/x/size.min.js +1 -1
  316. package/dist/x/size.mjs +1 -1
  317. package/dist/x/trace.es.js +1 -1
  318. package/dist/x/trace.es.min.js +1 -1
  319. package/dist/x/trace.js +1 -1
  320. package/dist/x/trace.min.js +1 -1
  321. package/dist/x/trace.mjs +1 -1
  322. package/dist/x/unionWith.es.js +1 -1
  323. package/dist/x/unionWith.es.min.js +1 -1
  324. package/dist/x/unionWith.js +1 -1
  325. package/dist/x/unionWith.min.js +1 -1
  326. package/dist/x/unionWith.mjs +1 -1
  327. package/dist/x/uniq.es.js +1 -1
  328. package/dist/x/uniq.es.min.js +1 -1
  329. package/dist/x/uniq.js +1 -1
  330. package/dist/x/uniq.min.js +1 -1
  331. package/dist/x/uniq.mjs +1 -1
  332. package/dist/x/unless.es.js +1 -1
  333. package/dist/x/unless.es.min.js +1 -1
  334. package/dist/x/unless.js +1 -1
  335. package/dist/x/unless.min.js +1 -1
  336. package/dist/x/unless.mjs +1 -1
  337. package/dist/x/values.es.js +1 -1
  338. package/dist/x/values.es.min.js +1 -1
  339. package/dist/x/values.js +1 -1
  340. package/dist/x/values.min.js +1 -1
  341. package/dist/x/values.mjs +1 -1
  342. package/dist/x/when.es.js +1 -1
  343. package/dist/x/when.es.min.js +1 -1
  344. package/dist/x/when.js +1 -1
  345. package/dist/x/when.min.js +1 -1
  346. package/dist/x/when.mjs +1 -1
  347. package/eq.js +2 -2
  348. package/es.js +233 -78
  349. package/every.js +2 -2
  350. package/filter.js +4 -4
  351. package/flatMap.js +61 -54
  352. package/forEach.js +33 -56
  353. package/get.js +5 -3
  354. package/gt.js +2 -2
  355. package/gte.js +2 -2
  356. package/index.js +233 -78
  357. package/lt.js +2 -2
  358. package/lte.js +2 -2
  359. package/map.js +115 -151
  360. package/monad/README.md +1 -1
  361. package/not.js +1 -1
  362. package/omit.js +22 -19
  363. package/or.js +1 -1
  364. package/package.json +1 -1
  365. package/pick.js +14 -11
  366. package/pipe.js +1 -1
  367. package/reduce.js +1 -1
  368. package/set.js +17 -18
  369. package/some.js +2 -2
  370. package/switchCase.js +12 -4
  371. package/tap.js +6 -4
  372. package/transform.js +1 -1
  373. package/tryCatch.js +1 -1
  374. package/x/defaultsDeep.js +1 -1
  375. package/x/defaultsDeep.test.js +1 -1
  376. package/_internal/NextIteration.js +0 -12
  377. package/_internal/generatorFunctionFilter.js +0 -28
  378. package/_internal/iterationMap.js +0 -27
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Rubico v2.8.6
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.8.6
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
- } else if (typeof element[symbolIterator] == 'function') {
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
- promises = new Set()
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 next() {
636
- while (
637
- !this.isAsyncIteratorDone || buffer.length > 0 || promises.size > 0
638
- ) {
639
- if (!this.isAsyncIteratorDone) {
640
- const { value, done } = await asyncIterator.next()
641
- if (done) {
642
- this.isAsyncIteratorDone = done
643
- } else {
644
- const monad = flatMapper(value)
645
- if (isPromise(monad)) {
646
- const bufferLoading =
647
- monad.then(curry3(genericReduce, __, arrayPush, buffer))
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([sleep(1000), ...promises])
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
  }
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Rubico v2.8.6
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}),x=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)},j=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},m=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(x(j,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(x(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=m(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),I=n=>new Promise((t=>{setTimeout(t,n)})),P=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},D=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)),z=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?D(e):e}(n,t);return f(e)?e.then(b):b(e)},T=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=(F=p,q=r(((n,t)=>n.join(t)),t,""),function(...n){const t=F(...n);return f(t)?t.then(q):q(t)});var F,q;const B=function(o,r){if(n(o))return function(n,t){const e=P(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;return{isAsyncIteratorDone:!1,[h](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||r.length>0||u.size>0;){if(!this.isAsyncIteratorDone){const{value:c,done:i}=await n.next();if(i)this.isAsyncIteratorDone=i;else{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)}}}}if(r.length>0)return{value:r.shift(),done:!1};u.size>0&&await A([I(1e3),...u])}return{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?z(o,r):u==Set?T(o,r):"string"==typeof o||u==String?function(n,t){const e=P(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(B,t,o):f(o)?o.then(r(B,t,u)):B(o,u));var o,u}}());
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}}());
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
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
- } else if (typeof element[symbolIterator] == 'function') {
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
- promises = new Set()
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 next() {
630
- while (
631
- !this.isAsyncIteratorDone || buffer.length > 0 || promises.size > 0
632
- ) {
633
- if (!this.isAsyncIteratorDone) {
634
- const { value, done } = await asyncIterator.next()
635
- if (done) {
636
- this.isAsyncIteratorDone = done
637
- } else {
638
- const monad = flatMapper(value)
639
- if (isPromise(monad)) {
640
- const bufferLoading =
641
- monad.then(curry3(genericReduce, __, arrayPush, buffer))
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([sleep(1000), ...promises])
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
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/groupBy.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/has.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/has.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/has.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/has.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/isEmpty.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/x/isEqual.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.8.6
2
+ * Rubico v2.10.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software