rubico 1.9.7 → 2.0.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 (587) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +3 -2
  3. package/.github/workflows/nodejs.yml +1 -1
  4. package/AggregateReducer.js +19 -0
  5. package/AggregateReducer.test.js +82 -0
  6. package/CHANGELOG.md +22 -1
  7. package/Transducer.js +75 -26
  8. package/Transducer.test.js +117 -0
  9. package/_internal/ComparisonOperator.js +68 -0
  10. package/_internal/File.js +41 -0
  11. package/_internal/FlatMappingAsyncIterator.js +4 -4
  12. package/_internal/FlatMappingIterator.js +1 -1
  13. package/_internal/TimeInLoopSuite.js +138 -0
  14. package/_internal/areAnyValuesPromises.js +23 -0
  15. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  16. package/_internal/arrayExtend.js +3 -2
  17. package/_internal/arrayFilter.js +3 -4
  18. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  19. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  20. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  21. package/_internal/curry4.test.js +25 -0
  22. package/_internal/curry5.test.js +29 -0
  23. package/_internal/curryArgs2.js +43 -0
  24. package/_internal/curryArgs3.test.js +21 -0
  25. package/_internal/curryArgs4.js +65 -0
  26. package/_internal/curryArgs4.test.js +25 -0
  27. package/_internal/equals.js +13 -0
  28. package/_internal/findAllFilePaths.js +22 -0
  29. package/_internal/funcApply.js +2 -0
  30. package/_internal/funcCall.js +14 -0
  31. package/_internal/functionArrayAll.js +26 -0
  32. package/_internal/functionArrayAllSeries.js +55 -0
  33. package/_internal/functionObjectAll.js +32 -0
  34. package/_internal/genericReduce.js +4 -22
  35. package/_internal/genericTransform.js +15 -15
  36. package/_internal/improvedGenericTransform.js +93 -0
  37. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  38. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  39. package/_internal/leftResolverRightResolverCompare.js +19 -0
  40. package/_internal/leftResolverRightValueCompare.js +16 -0
  41. package/_internal/leftValueRightResolverCompare.js +16 -0
  42. package/_internal/objectReduce.js +0 -1
  43. package/_internal/pathResolve.js +6 -0
  44. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  45. package/_internal/reducerFlatMap.js +4 -4
  46. package/_internal/reducerFlatten.js +1 -1
  47. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  48. package/_internal/timeInLoop.js +37 -0
  49. package/_internal/timeInLoop.test.js +18 -0
  50. package/_internal/timeInLoopAsync.js +35 -0
  51. package/_internal/timeInLoopAsync.test.js +22 -0
  52. package/all.js +106 -40
  53. package/and.js +54 -36
  54. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  55. package/archive/_Promise-2023-05-29.js +93 -0
  56. package/archive/arrayMap2-2023-05-29.js +73 -0
  57. package/archive/benchmarks-v1.9.7/all.js +34 -0
  58. package/archive/benchmarks-v1.9.7/and.js +24 -0
  59. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  60. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  61. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  62. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  63. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  64. package/archive/benchmarks-v1.9.7/get.js +44 -0
  65. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  66. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  67. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  69. package/archive/benchmarks-v1.9.7/map.js +892 -0
  70. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  71. package/archive/benchmarks-v1.9.7/or.js +51 -0
  72. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  73. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  74. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  75. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  76. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  77. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  78. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  79. package/assign.js +18 -8
  80. package/bench +65 -0
  81. package/benchmark-output/v1.9.7 +268 -0
  82. package/benchmarks/all.async.js +43 -0
  83. package/benchmarks/all.js +42 -33
  84. package/benchmarks/always.js +15 -0
  85. package/benchmarks/and.async.js +25 -0
  86. package/benchmarks/and.js +20 -19
  87. package/benchmarks/assign.async.js +27 -0
  88. package/benchmarks/assign.js +20 -167
  89. package/benchmarks/curry.js +34 -54
  90. package/benchmarks/eq.async.js +23 -0
  91. package/benchmarks/eq.js +17 -19
  92. package/benchmarks/every.async.js +19 -0
  93. package/benchmarks/every.js +19 -0
  94. package/benchmarks/filter.async.js +32 -0
  95. package/benchmarks/filter.js +27 -1311
  96. package/benchmarks/flatMap.async.js +26 -0
  97. package/benchmarks/flatMap.js +26 -36
  98. package/benchmarks/get.async.js +19 -0
  99. package/benchmarks/get.js +27 -32
  100. package/benchmarks/gt.async.js +23 -0
  101. package/benchmarks/gt.js +17 -19
  102. package/benchmarks/gte.async.js +23 -0
  103. package/benchmarks/gte.js +17 -19
  104. package/benchmarks/lt.async.js +23 -0
  105. package/benchmarks/lt.js +17 -19
  106. package/benchmarks/lte.async.js +23 -0
  107. package/benchmarks/lte.js +17 -19
  108. package/benchmarks/map.async.js +43 -0
  109. package/benchmarks/map.js +24 -876
  110. package/benchmarks/misc/Promise.js +26 -0
  111. package/benchmarks/misc/isPromise.js +30 -0
  112. package/benchmarks/misc/promiseAll.js +36 -0
  113. package/benchmarks/not.js +23 -0
  114. package/benchmarks/omit.js +30 -20
  115. package/benchmarks/or.async.js +25 -0
  116. package/benchmarks/or.js +23 -49
  117. package/benchmarks/pick.js +30 -16
  118. package/benchmarks/pipe.async.js +47 -0
  119. package/benchmarks/pipe.js +46 -151
  120. package/benchmarks/reduce.async.js +32 -0
  121. package/benchmarks/reduce.js +27 -728
  122. package/benchmarks/set.async.js +19 -0
  123. package/benchmarks/set.js +41 -0
  124. package/benchmarks/some.async.js +19 -0
  125. package/benchmarks/some.js +19 -0
  126. package/benchmarks/switchCase.async.js +27 -0
  127. package/benchmarks/switchCase.js +55 -256
  128. package/benchmarks/tap.js +10 -85
  129. package/benchmarks/thunkify.js +15 -0
  130. package/benchmarks/transform.async.js +27 -0
  131. package/benchmarks/transform.js +28 -206
  132. package/benchmarks/tryCatch.async.js +25 -0
  133. package/benchmarks/tryCatch.js +24 -100
  134. package/{distributor.js → build} +50 -50
  135. package/compose.js +46 -0
  136. package/dist/__.es.js +2 -2
  137. package/dist/__.es.min.js +2 -2
  138. package/dist/__.js +2 -2
  139. package/dist/__.min.js +2 -2
  140. package/dist/__.min.mjs +2 -2
  141. package/dist/__.mjs +2 -2
  142. package/dist/all.es.js +173 -92
  143. package/dist/all.es.min.js +3 -3
  144. package/dist/all.js +173 -92
  145. package/dist/all.min.js +3 -3
  146. package/dist/all.min.mjs +3 -3
  147. package/dist/all.mjs +173 -92
  148. package/dist/always.es.js +2 -2
  149. package/dist/always.es.min.js +2 -2
  150. package/dist/always.js +2 -2
  151. package/dist/always.min.js +2 -2
  152. package/dist/always.min.mjs +2 -2
  153. package/dist/always.mjs +2 -2
  154. package/dist/and.es.js +101 -32
  155. package/dist/and.es.min.js +3 -3
  156. package/dist/and.js +101 -32
  157. package/dist/and.min.js +3 -3
  158. package/dist/and.min.mjs +3 -3
  159. package/dist/and.mjs +101 -32
  160. package/dist/assign.es.js +37 -10
  161. package/dist/assign.es.min.js +3 -3
  162. package/dist/assign.js +37 -10
  163. package/dist/assign.min.js +3 -3
  164. package/dist/assign.min.mjs +3 -3
  165. package/dist/assign.mjs +37 -10
  166. package/dist/compose.es.js +71 -0
  167. package/dist/compose.es.min.js +7 -0
  168. package/dist/compose.js +78 -0
  169. package/dist/compose.min.js +8 -0
  170. package/dist/compose.min.mjs +7 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.min.mjs +2 -2
  177. package/dist/curry.mjs +2 -2
  178. package/dist/eq.es.js +172 -49
  179. package/dist/eq.es.min.js +3 -3
  180. package/dist/eq.js +172 -49
  181. package/dist/eq.min.js +3 -3
  182. package/dist/eq.min.mjs +3 -3
  183. package/dist/eq.mjs +172 -49
  184. package/dist/every.es.js +194 -0
  185. package/dist/every.es.min.js +7 -0
  186. package/dist/every.js +201 -0
  187. package/dist/every.min.js +8 -0
  188. package/dist/every.min.mjs +7 -0
  189. package/dist/every.mjs +194 -0
  190. package/dist/filter.es.js +14 -108
  191. package/dist/filter.es.min.js +3 -3
  192. package/dist/filter.js +14 -108
  193. package/dist/filter.min.js +3 -3
  194. package/dist/filter.min.mjs +3 -3
  195. package/dist/filter.mjs +14 -108
  196. package/dist/flatMap.es.js +27 -214
  197. package/dist/flatMap.es.min.js +3 -3
  198. package/dist/flatMap.js +27 -214
  199. package/dist/flatMap.min.js +3 -3
  200. package/dist/flatMap.min.mjs +3 -3
  201. package/dist/flatMap.mjs +27 -214
  202. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  203. package/dist/forEach.es.min.js +7 -0
  204. package/dist/{x/forEach.js → forEach.js} +52 -70
  205. package/dist/forEach.min.js +8 -0
  206. package/dist/forEach.min.mjs +7 -0
  207. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  208. package/dist/get.es.js +60 -5
  209. package/dist/get.es.min.js +3 -3
  210. package/dist/get.js +60 -5
  211. package/dist/get.min.js +3 -3
  212. package/dist/get.min.mjs +3 -3
  213. package/dist/get.mjs +60 -5
  214. package/dist/gt.es.js +171 -48
  215. package/dist/gt.es.min.js +3 -3
  216. package/dist/gt.js +171 -48
  217. package/dist/gt.min.js +3 -3
  218. package/dist/gt.min.mjs +3 -3
  219. package/dist/gt.mjs +171 -48
  220. package/dist/gte.es.js +171 -48
  221. package/dist/gte.es.min.js +3 -3
  222. package/dist/gte.js +171 -48
  223. package/dist/gte.min.js +3 -3
  224. package/dist/gte.min.mjs +3 -3
  225. package/dist/gte.mjs +171 -48
  226. package/dist/lt.es.js +171 -48
  227. package/dist/lt.es.min.js +3 -3
  228. package/dist/lt.js +171 -48
  229. package/dist/lt.min.js +3 -3
  230. package/dist/lt.min.mjs +3 -3
  231. package/dist/lt.mjs +171 -48
  232. package/dist/lte.es.js +171 -48
  233. package/dist/lte.es.min.js +3 -3
  234. package/dist/lte.js +171 -48
  235. package/dist/lte.min.js +3 -3
  236. package/dist/lte.min.mjs +3 -3
  237. package/dist/lte.mjs +171 -48
  238. package/dist/map.es.js +12 -101
  239. package/dist/map.es.min.js +3 -3
  240. package/dist/map.js +12 -101
  241. package/dist/map.min.js +3 -3
  242. package/dist/map.min.mjs +3 -3
  243. package/dist/map.mjs +12 -101
  244. package/dist/not.es.js +75 -14
  245. package/dist/not.es.min.js +3 -3
  246. package/dist/not.js +75 -14
  247. package/dist/not.min.js +3 -3
  248. package/dist/not.min.mjs +3 -3
  249. package/dist/not.mjs +75 -14
  250. package/dist/omit.es.js +7 -2
  251. package/dist/omit.es.min.js +3 -3
  252. package/dist/omit.js +7 -2
  253. package/dist/omit.min.js +3 -3
  254. package/dist/omit.min.mjs +3 -3
  255. package/dist/omit.mjs +7 -2
  256. package/dist/or.es.js +99 -31
  257. package/dist/or.es.min.js +3 -3
  258. package/dist/or.js +99 -31
  259. package/dist/or.min.js +3 -3
  260. package/dist/or.min.mjs +3 -3
  261. package/dist/or.mjs +99 -31
  262. package/dist/pick.es.js +8 -3
  263. package/dist/pick.es.min.js +3 -3
  264. package/dist/pick.js +8 -3
  265. package/dist/pick.min.js +3 -3
  266. package/dist/pick.min.mjs +3 -3
  267. package/dist/pick.mjs +8 -3
  268. package/dist/pipe.es.js +42 -46
  269. package/dist/pipe.es.min.js +3 -3
  270. package/dist/pipe.js +42 -46
  271. package/dist/pipe.min.js +3 -3
  272. package/dist/pipe.min.mjs +3 -3
  273. package/dist/pipe.mjs +42 -46
  274. package/dist/reduce.es.js +52 -94
  275. package/dist/reduce.es.min.js +3 -3
  276. package/dist/reduce.js +52 -94
  277. package/dist/reduce.min.js +3 -3
  278. package/dist/reduce.min.mjs +3 -3
  279. package/dist/reduce.mjs +52 -94
  280. package/dist/rubico.es.js +730 -869
  281. package/dist/rubico.es.min.js +3 -3
  282. package/dist/rubico.js +730 -869
  283. package/dist/rubico.min.js +3 -3
  284. package/dist/rubico.min.mjs +3 -3
  285. package/dist/rubico.mjs +730 -869
  286. package/dist/set.es.js +18 -3
  287. package/dist/set.es.min.js +3 -3
  288. package/dist/set.js +18 -3
  289. package/dist/set.min.js +3 -3
  290. package/dist/set.min.mjs +3 -3
  291. package/dist/set.mjs +18 -3
  292. package/dist/{any.js → some.es.js} +64 -54
  293. package/dist/some.es.min.js +7 -0
  294. package/dist/{any.mjs → some.js} +72 -48
  295. package/dist/some.min.js +8 -0
  296. package/dist/some.min.mjs +7 -0
  297. package/dist/{any.es.js → some.mjs} +65 -48
  298. package/dist/switchCase.es.js +55 -5
  299. package/dist/switchCase.es.min.js +3 -3
  300. package/dist/switchCase.js +55 -5
  301. package/dist/switchCase.min.js +3 -3
  302. package/dist/switchCase.min.mjs +3 -3
  303. package/dist/switchCase.mjs +55 -5
  304. package/dist/tap.es.js +2 -9
  305. package/dist/tap.es.min.js +3 -3
  306. package/dist/tap.js +2 -9
  307. package/dist/tap.min.js +3 -3
  308. package/dist/tap.min.mjs +3 -3
  309. package/dist/tap.mjs +2 -9
  310. package/dist/thunkify.es.js +45 -2
  311. package/dist/thunkify.es.min.js +3 -3
  312. package/dist/thunkify.js +45 -2
  313. package/dist/thunkify.min.js +3 -3
  314. package/dist/thunkify.min.mjs +3 -3
  315. package/dist/thunkify.mjs +45 -2
  316. package/dist/transform.es.js +35 -71
  317. package/dist/transform.es.min.js +3 -3
  318. package/dist/transform.js +35 -71
  319. package/dist/transform.min.js +3 -3
  320. package/dist/transform.min.mjs +3 -3
  321. package/dist/transform.mjs +35 -71
  322. package/dist/tryCatch.es.js +33 -17
  323. package/dist/tryCatch.es.min.js +3 -3
  324. package/dist/tryCatch.js +33 -17
  325. package/dist/tryCatch.min.js +3 -3
  326. package/dist/tryCatch.min.mjs +3 -3
  327. package/dist/tryCatch.mjs +33 -17
  328. package/dist/x/append.es.js +2 -2
  329. package/dist/x/append.es.min.js +2 -2
  330. package/dist/x/append.js +2 -2
  331. package/dist/x/append.min.js +2 -2
  332. package/dist/x/append.min.mjs +2 -2
  333. package/dist/x/append.mjs +2 -2
  334. package/dist/x/callProp.es.js +2 -2
  335. package/dist/x/callProp.es.min.js +2 -2
  336. package/dist/x/callProp.js +2 -2
  337. package/dist/x/callProp.min.js +2 -2
  338. package/dist/x/callProp.min.mjs +2 -2
  339. package/dist/x/callProp.mjs +2 -2
  340. package/dist/x/defaultsDeep.es.js +2 -2
  341. package/dist/x/defaultsDeep.es.min.js +2 -2
  342. package/dist/x/defaultsDeep.js +2 -2
  343. package/dist/x/defaultsDeep.min.js +2 -2
  344. package/dist/x/defaultsDeep.min.mjs +2 -2
  345. package/dist/x/defaultsDeep.mjs +2 -2
  346. package/dist/x/differenceWith.es.js +7 -7
  347. package/dist/x/differenceWith.es.min.js +3 -3
  348. package/dist/x/differenceWith.js +7 -7
  349. package/dist/x/differenceWith.min.js +2 -2
  350. package/dist/x/differenceWith.min.mjs +3 -3
  351. package/dist/x/differenceWith.mjs +7 -7
  352. package/dist/x/filterOut.es.js +60 -117
  353. package/dist/x/filterOut.es.min.js +3 -3
  354. package/dist/x/filterOut.js +60 -117
  355. package/dist/x/filterOut.min.js +3 -3
  356. package/dist/x/filterOut.min.mjs +3 -3
  357. package/dist/x/filterOut.mjs +60 -117
  358. package/dist/x/find.es.js +2 -2
  359. package/dist/x/find.es.min.js +2 -2
  360. package/dist/x/find.js +2 -2
  361. package/dist/x/find.min.js +2 -2
  362. package/dist/x/find.min.mjs +2 -2
  363. package/dist/x/find.mjs +2 -2
  364. package/dist/x/findIndex.es.js +2 -2
  365. package/dist/x/findIndex.es.min.js +2 -2
  366. package/dist/x/findIndex.js +2 -2
  367. package/dist/x/findIndex.min.js +2 -2
  368. package/dist/x/findIndex.min.mjs +2 -2
  369. package/dist/x/findIndex.mjs +2 -2
  370. package/dist/x/first.es.js +2 -2
  371. package/dist/x/first.es.min.js +2 -2
  372. package/dist/x/first.js +2 -2
  373. package/dist/x/first.min.js +2 -2
  374. package/dist/x/first.min.mjs +2 -2
  375. package/dist/x/first.mjs +2 -2
  376. package/dist/x/flatten.es.js +20 -207
  377. package/dist/x/flatten.es.min.js +3 -3
  378. package/dist/x/flatten.js +20 -207
  379. package/dist/x/flatten.min.js +3 -3
  380. package/dist/x/flatten.min.mjs +3 -3
  381. package/dist/x/flatten.mjs +20 -207
  382. package/dist/x/groupBy.es.js +52 -94
  383. package/dist/x/groupBy.es.min.js +3 -3
  384. package/dist/x/groupBy.js +52 -94
  385. package/dist/x/groupBy.min.js +3 -3
  386. package/dist/x/groupBy.min.mjs +3 -3
  387. package/dist/x/groupBy.mjs +52 -94
  388. package/dist/x/has.es.js +2 -2
  389. package/dist/x/has.es.min.js +2 -2
  390. package/dist/x/has.js +2 -2
  391. package/dist/x/has.min.js +2 -2
  392. package/dist/x/has.min.mjs +2 -2
  393. package/dist/x/has.mjs +2 -2
  394. package/dist/x/identity.es.js +2 -2
  395. package/dist/x/identity.es.min.js +2 -2
  396. package/dist/x/identity.js +2 -2
  397. package/dist/x/identity.min.js +2 -2
  398. package/dist/x/identity.min.mjs +2 -2
  399. package/dist/x/identity.mjs +2 -2
  400. package/dist/x/includes.es.js +2 -2
  401. package/dist/x/includes.es.min.js +2 -2
  402. package/dist/x/includes.js +2 -2
  403. package/dist/x/includes.min.js +2 -2
  404. package/dist/x/includes.min.mjs +2 -2
  405. package/dist/x/includes.mjs +2 -2
  406. package/dist/x/isDeepEqual.es.js +2 -2
  407. package/dist/x/isDeepEqual.es.min.js +2 -2
  408. package/dist/x/isDeepEqual.js +2 -2
  409. package/dist/x/isDeepEqual.min.js +2 -2
  410. package/dist/x/isDeepEqual.min.mjs +2 -2
  411. package/dist/x/isDeepEqual.mjs +2 -2
  412. package/dist/x/isEmpty.es.js +2 -2
  413. package/dist/x/isEmpty.es.min.js +2 -2
  414. package/dist/x/isEmpty.js +2 -2
  415. package/dist/x/isEmpty.min.js +2 -2
  416. package/dist/x/isEmpty.min.mjs +2 -2
  417. package/dist/x/isEmpty.mjs +2 -2
  418. package/dist/x/isEqual.es.js +2 -2
  419. package/dist/x/isEqual.es.min.js +2 -2
  420. package/dist/x/isEqual.js +2 -2
  421. package/dist/x/isEqual.min.js +2 -2
  422. package/dist/x/isEqual.min.mjs +2 -2
  423. package/dist/x/isEqual.mjs +2 -2
  424. package/dist/x/isFunction.es.js +2 -2
  425. package/dist/x/isFunction.es.min.js +2 -2
  426. package/dist/x/isFunction.js +2 -2
  427. package/dist/x/isFunction.min.js +2 -2
  428. package/dist/x/isFunction.min.mjs +2 -2
  429. package/dist/x/isFunction.mjs +2 -2
  430. package/dist/x/isIn.es.js +2 -2
  431. package/dist/x/isIn.es.min.js +2 -2
  432. package/dist/x/isIn.js +2 -2
  433. package/dist/x/isIn.min.js +2 -2
  434. package/dist/x/isIn.min.mjs +2 -2
  435. package/dist/x/isIn.mjs +2 -2
  436. package/dist/x/isObject.es.js +2 -2
  437. package/dist/x/isObject.es.min.js +2 -2
  438. package/dist/x/isObject.js +2 -2
  439. package/dist/x/isObject.min.js +2 -2
  440. package/dist/x/isObject.min.mjs +2 -2
  441. package/dist/x/isObject.mjs +2 -2
  442. package/dist/x/isString.es.js +2 -2
  443. package/dist/x/isString.es.min.js +2 -2
  444. package/dist/x/isString.js +2 -2
  445. package/dist/x/isString.min.js +2 -2
  446. package/dist/x/isString.min.mjs +2 -2
  447. package/dist/x/isString.mjs +2 -2
  448. package/dist/x/keys.es.js +2 -2
  449. package/dist/x/keys.es.min.js +2 -2
  450. package/dist/x/keys.js +2 -2
  451. package/dist/x/keys.min.js +2 -2
  452. package/dist/x/keys.min.mjs +2 -2
  453. package/dist/x/keys.mjs +2 -2
  454. package/dist/x/last.es.js +2 -2
  455. package/dist/x/last.es.min.js +2 -2
  456. package/dist/x/last.js +2 -2
  457. package/dist/x/last.min.js +2 -2
  458. package/dist/x/last.min.mjs +2 -2
  459. package/dist/x/last.mjs +2 -2
  460. package/dist/x/maxBy.es.js +59 -6
  461. package/dist/x/maxBy.es.min.js +3 -3
  462. package/dist/x/maxBy.js +59 -6
  463. package/dist/x/maxBy.min.js +3 -3
  464. package/dist/x/maxBy.min.mjs +3 -3
  465. package/dist/x/maxBy.mjs +59 -6
  466. package/dist/x/noop.es.js +2 -2
  467. package/dist/x/noop.es.min.js +2 -2
  468. package/dist/x/noop.js +2 -2
  469. package/dist/x/noop.min.js +2 -2
  470. package/dist/x/noop.min.mjs +2 -2
  471. package/dist/x/noop.mjs +2 -2
  472. package/dist/x/pluck.es.js +32 -103
  473. package/dist/x/pluck.es.min.js +3 -3
  474. package/dist/x/pluck.js +32 -103
  475. package/dist/x/pluck.min.js +3 -3
  476. package/dist/x/pluck.min.mjs +3 -3
  477. package/dist/x/pluck.mjs +32 -103
  478. package/dist/x/prepend.es.js +2 -2
  479. package/dist/x/prepend.es.min.js +2 -2
  480. package/dist/x/prepend.js +2 -2
  481. package/dist/x/prepend.min.js +2 -2
  482. package/dist/x/prepend.min.mjs +2 -2
  483. package/dist/x/prepend.mjs +2 -2
  484. package/dist/x/size.es.js +2 -2
  485. package/dist/x/size.es.min.js +2 -2
  486. package/dist/x/size.js +2 -2
  487. package/dist/x/size.min.js +2 -2
  488. package/dist/x/size.min.mjs +2 -2
  489. package/dist/x/size.mjs +2 -2
  490. package/dist/x/trace.es.js +2 -9
  491. package/dist/x/trace.es.min.js +3 -3
  492. package/dist/x/trace.js +2 -9
  493. package/dist/x/trace.min.js +3 -3
  494. package/dist/x/trace.min.mjs +3 -3
  495. package/dist/x/trace.mjs +2 -9
  496. package/dist/x/unionWith.es.js +2 -2
  497. package/dist/x/unionWith.es.min.js +2 -2
  498. package/dist/x/unionWith.js +2 -2
  499. package/dist/x/unionWith.min.js +2 -2
  500. package/dist/x/unionWith.min.mjs +2 -2
  501. package/dist/x/unionWith.mjs +2 -2
  502. package/dist/x/uniq.es.js +2 -2
  503. package/dist/x/uniq.es.min.js +2 -2
  504. package/dist/x/uniq.js +2 -2
  505. package/dist/x/uniq.min.js +2 -2
  506. package/dist/x/uniq.min.mjs +2 -2
  507. package/dist/x/uniq.mjs +2 -2
  508. package/dist/x/unless.es.js +2 -2
  509. package/dist/x/unless.es.min.js +2 -2
  510. package/dist/x/unless.js +2 -2
  511. package/dist/x/unless.min.js +2 -2
  512. package/dist/x/unless.min.mjs +2 -2
  513. package/dist/x/unless.mjs +2 -2
  514. package/dist/x/values.es.js +2 -2
  515. package/dist/x/values.es.min.js +2 -2
  516. package/dist/x/values.js +2 -2
  517. package/dist/x/values.min.js +2 -2
  518. package/dist/x/values.min.mjs +2 -2
  519. package/dist/x/values.mjs +2 -2
  520. package/dist/x/when.es.js +2 -2
  521. package/dist/x/when.es.min.js +2 -2
  522. package/dist/x/when.js +2 -2
  523. package/dist/x/when.min.js +2 -2
  524. package/dist/x/when.min.mjs +2 -2
  525. package/dist/x/when.mjs +2 -2
  526. package/dist-test.js +9 -2042
  527. package/eq.js +21 -63
  528. package/es.js +730 -869
  529. package/every.js +94 -0
  530. package/filter.js +23 -91
  531. package/flatMap.js +75 -70
  532. package/forEach.js +82 -0
  533. package/get.js +23 -6
  534. package/global.js +6 -4
  535. package/gt.js +15 -58
  536. package/gte.js +14 -57
  537. package/index.js +730 -869
  538. package/lt.js +17 -60
  539. package/lte.js +14 -57
  540. package/map.js +9 -94
  541. package/memory-usage/reduce.js +2 -2
  542. package/not.js +27 -45
  543. package/omit.js +4 -0
  544. package/or.js +50 -33
  545. package/package.json +7 -7
  546. package/pick.js +5 -1
  547. package/pipe.js +13 -50
  548. package/reduce.js +42 -51
  549. package/rubico.js +10 -8
  550. package/set.js +43 -10
  551. package/some.js +105 -0
  552. package/switchCase.js +13 -3
  553. package/tap.js +0 -24
  554. package/test.js +847 -1096
  555. package/thunkify.js +9 -0
  556. package/transform.js +31 -16
  557. package/tryCatch.js +19 -15
  558. package/x/differenceWith.js +3 -3
  559. package/x/filterOut.test.js +6 -6
  560. package/x/flatten.js +1 -1
  561. package/x/flatten.test.js +0 -8
  562. package/x/index.js +0 -2
  563. package/x/pluck.js +18 -27
  564. package/x/pluck.test.js +3 -7
  565. package/x/timeInLoop.js +16 -25
  566. package/x/timeInLoop.test.js +8 -4
  567. package/any.js +0 -82
  568. package/dist/any.es.min.js +0 -7
  569. package/dist/any.min.js +0 -8
  570. package/dist/any.min.mjs +0 -7
  571. package/dist/fork.es.js +0 -159
  572. package/dist/fork.es.min.js +0 -7
  573. package/dist/fork.js +0 -166
  574. package/dist/fork.min.js +0 -8
  575. package/dist/fork.min.mjs +0 -7
  576. package/dist/fork.mjs +0 -159
  577. package/dist/x/forEach.es.min.js +0 -7
  578. package/dist/x/forEach.min.js +0 -8
  579. package/dist/x/forEach.min.mjs +0 -7
  580. package/fork.js +0 -101
  581. package/x/forEach.js +0 -93
  582. package/x/forEach.test.js +0 -218
  583. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  584. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  586. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.transform=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),r=function(n,r,e,o){return r==t?((n,t,r)=>function(e){return n(e,t,r)})(n,e,o):e==t?((n,t,r)=>function(e){return n(t,e,r)})(n,r,o):((n,t,r)=>function(e){return n(t,r,e)})(n,r,e)},e=Array.isArray,o=ArrayBuffer.isView,u=function(n,r,e){return r==t?((n,t)=>function(r){return n(r,t)})(n,e):((n,t)=>function(r){return n(t,r)})(n,r)},c=function(){},f=(n,t)=>n+t,i=(Object.values,Object.prototype.toString),a=n=>i.call(n),l=async function(t,r,e){let o=t.next();if(o.done)return e;for(;!o.done;)e=r(e,o.value),n(e)&&(e=await e),o=t.next();return e},s=function(e,o,u){let c=e.next();if(c.done)return u;for(void 0===u&&(u=c.value,c=e.next());!c.done;){if(u=o(u,c.value),n(u))return u.then(r(l,e,o,t));c=e.next()}return u},y=async function(n,t,r){let e=await n.next();if(e.done)return r;for(void 0===r&&(r=e.value,e=await n.next());!e.done;)r=await t(r,e.value),e=await n.next();return r},d=Symbol.iterator,h=Symbol.asyncIterator,p=function(n,r,e,o,u){return r==t?((n,t,r,e)=>function(o){return n(o,t,r,e)})(n,e,o,u):e==t?((n,t,r,e)=>function(o){return n(t,o,r,e)})(n,r,o,u):o==t?((n,t,r,e)=>function(o){return n(t,r,o,e)})(n,r,e,u):((n,t,r,e)=>function(o){return n(t,r,e,o)})(n,r,e,o)},v=async function(t,r,e,o){const u=t.length;for(;++o<u;)e=r(e,t[o],o,t),n(e)&&(e=await e);return e},g=Object.keys,b=async function(t,r,e,o,u){const c=o.length;for(;++u<c;){const c=o[u];e=r(e,t[c],c,t),n(e)&&(e=await e)}return e},w=async function(t,r,e,o){for(const[u,c]of o)e=r(e,c,u,t),n(e)&&(e=await e);return e},j=(n,t)=>function(...r){return t(n(...r))},x=(r,e)=>function(o,c){const f=r(o,c);return n(f)?f.then(u(e,t,c)):e(f,c)},m=function(o,c,f){const i=o[0];return e(i)?function(r,e,o){const u=r.length;let c=-1;for(void 0===o&&(o=r[++c]);++c<u;)if(o=e(o,r[c],c,r),n(o))return o.then(p(v,r,e,t,c));return o}(i,c,f):"function"==typeof i?"[object GeneratorFunction]"==a(i)?((n,e,o)=>j(n,r(s,t,e,o)))(i,c,f):(n=>"[object AsyncGeneratorFunction]"==a(n))(i)?((n,e,o)=>j(n,r(y,t,e,o)))(i,c,f):(l=m,S=t,O=1==o.length?x(c,i):o.reduce(x,c),A=f,S==t?((n,t,r)=>function(...e){return n(e,t,r)})(l,O,A):O==t?((n,t,r)=>function(...e){return n(t,e,r)})(l,S,A):((n,t,r)=>function(...e){return n(t,r,e)})(l,S,O)):null==i?void 0===f?u(c,i,t):c(f,i):i.constructor==Map?function(r,e,o){const u=r.entries();if(void 0===o){const n=u.next();if(n.done)return o;o=n.value[1]}for(const[c,f]of u)if(o=e(o,f,c,r),n(o))return o.then(p(w,r,e,t,u));return o}(i,c,f):"function"==typeof i[d]?s(i[d](),c,f):"function"==typeof i[h]?y(i[h](),c,f):"function"==typeof i.reduce?i.reduce(c,f):"function"==typeof i.chain?i.chain(u(c,f,t)):"function"==typeof i.flatMap?i.flatMap(u(c,f,t)):i.constructor==Object?function(r,e,o){const u=g(r),c=u.length;let f=-1;for(void 0===o&&(o=r[u[++f]]);++f<c;){const c=u[f];if(o=e(o,r[c],c,r),n(o))return o.then((i=b,l=e,s=t,y=u,d=f,(a=r)==t?((n,t,r,e,o)=>function(u){return n(u,t,r,e,o)})(i,l,s,y,d):l==t?((n,t,r,e,o)=>function(u){return n(t,u,r,e,o)})(i,a,s,y,d):s==t?((n,t,r,e,o)=>function(u){return n(t,r,u,e,o)})(i,a,l,y,d):y==t?((n,t,r,e,o)=>function(u){return n(t,r,e,u,o)})(i,a,l,s,d):((n,t,r,e,o)=>function(u){return n(t,r,e,o,u)})(i,a,l,s,y)))}var i,a,l,s,y,d;return o}(i,c,f):void 0===f?u(c,i,t):c(f,i);var l,S,O,A},S=Object.assign,O=function(n,t){return null!=(r=t)&&r.length>0?function(n,t){const r=n.length,e=t.length;let o=-1;for(;++o<e;)n[r+o]=t[o];return n}(n,t):(n.push(t),n);var r},A="function"==typeof Buffer,B=A?Buffer.alloc:c,M=function(n,t){const r=n.length,e=A&&n.constructor==Buffer?B(r+t.length):new n.constructor(r+t.length);return e.set(n),e.set(t,r),e},F=function(n,t){return e(t)||o(t)?M(n,t):M(n,[t])},G=function(n,t){return null!=(r=t)&&"function"==typeof r.pipe?((n,t)=>new Promise(((n,t)=>function(r,e){var o,u;t.on("data",(n=>function(t,r,e){return n.write(t,r,e),n})(n)),t.on("end",(o=r,u=n,function(){return o(u)})),t.on("error",e)})(n,t)))(n,t):(n.write(t),n);var r},T=function(n,t){if(null!=t&&t.constructor==Set){for(const r of t)n.add(r);return n}return n.add(t)},k=function(n,t){return n.concat(t)},I=function(t,r,e){const o=m(t,r(c),null);return n(o)?o.then((u=e,function(){return u})):e;var u},P=function(r,c,i){if(e(i))return m(r,c(O),i);if(o(i)){const e=m(r,c(O),[]);return n(e)?e.then(u(F,i,t)):F(i,e)}if(null==i)return I(r,c,i);const a=i.constructor;return"string"==typeof i||a==String?m(r,c(f),i):"function"==typeof i.concat?m(r,c(k),i):"function"==typeof i.write?m(r,c(G),i):a==Set?m(r,c(T),i):a==Object?m(r,c(S),i):I(r,c,i)};return function(e,o){return"function"==typeof o?function(...u){const c=o(...u);return n(c)?c.then(r(P,u,e,t)):P(u,e,c)}:function(...n){return P(n,e,o)}}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.transform=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),r=function(n,r,e,o){return r==t?((n,t,r)=>function(e){return n(e,t,r)})(n,e,o):e==t?((n,t,r)=>function(e){return n(t,e,r)})(n,r,o):((n,t,r)=>function(e){return n(t,r,e)})(n,r,e)},e=Array.isArray,o=ArrayBuffer.isView,u=function(n,r,e){return r==t?((n,t)=>function(r){return n(r,t)})(n,e):((n,t)=>function(r){return n(t,r)})(n,r)},f=function(){},c=(n,t)=>n+t,i=(Object.values,Object.prototype.toString,async function(t,r,e){let o=t.next();if(o.done)return e;for(;!o.done;)e=r(e,o.value),n(e)&&(e=await e),o=t.next();return e}),a=Symbol.iterator,l=Symbol.asyncIterator,s=function(n,r,e,o,u){return r==t?((n,t,r,e)=>function(o){return n(o,t,r,e)})(n,e,o,u):e==t?((n,t,r,e)=>function(o){return n(t,o,r,e)})(n,r,o,u):o==t?((n,t,r,e)=>function(o){return n(t,r,o,e)})(n,r,e,u):((n,t,r,e)=>function(o){return n(t,r,e,o)})(n,r,e,o)},y=async function(t,r,e,o){const u=t.length;for(;++o<u;)e=r(e,t[o],o,t),n(e)&&(e=await e);return e},d=Object.keys,h=async function(t,r,e,o,u){const f=o.length;for(;++u<f;){const f=o[u];e=r(e,t[f],f,t),n(e)&&(e=await e)}return e},p=async function(t,r,e,o){for(const[u,f]of o)e=r(e,f,u,t),n(e)&&(e=await e);return e},v=function(o,f,c){return e(o)?function(r,e,o){const u=r.length;let f=-1;for(void 0===o&&(o=r[++f]);++f<u;)if(o=e(o,r[f],f,r),n(o))return o.then(s(y,r,e,t,f));return o}(o,f,c):null==o?void 0===c?u(f,o,t):f(c,o):o.constructor==Map?function(r,e,o){const u=r.entries();if(void 0===o){const n=u.next();if(n.done)return o;o=n.value[1]}for(const[f,c]of u)if(o=e(o,c,f,r),n(o))return o.then(s(p,r,e,t,u));return o}(o,f,c):"function"==typeof o[a]?function(e,o,u){let f=e.next();if(f.done)return u;for(void 0===u&&(u=f.value,f=e.next());!f.done;){if(u=o(u,f.value),n(u))return u.then(r(i,e,o,t));f=e.next()}return u}(o[a](),f,c):"function"==typeof o[l]?async function(n,t,r){let e=await n.next();if(e.done)return r;for(void 0===r&&(r=e.value,e=await n.next());!e.done;)r=await t(r,e.value),e=await n.next();return r}(o[l](),f,c):"function"==typeof o.reduce?o.reduce(f,c):"function"==typeof o.chain?o.chain(u(f,c,t)):"function"==typeof o.flatMap?o.flatMap(u(f,c,t)):o.constructor==Object?function(r,e,o){const u=d(r),f=u.length;let c=-1;for(void 0===o&&(o=r[u[++c]]);++c<f;){const f=u[c];if(o=e(o,r[f],f,r),n(o))return o.then((i=h,l=e,s=t,y=u,p=c,(a=r)==t?((n,t,r,e,o)=>function(u){return n(u,t,r,e,o)})(i,l,s,y,p):l==t?((n,t,r,e,o)=>function(u){return n(t,u,r,e,o)})(i,a,s,y,p):s==t?((n,t,r,e,o)=>function(u){return n(t,r,u,e,o)})(i,a,l,y,p):y==t?((n,t,r,e,o)=>function(u){return n(t,r,e,u,o)})(i,a,l,s,p):((n,t,r,e,o)=>function(u){return n(t,r,e,o,u)})(i,a,l,s,y)))}var i,a,l,s,y,p;return o}(o,f,c):void 0===c?u(f,o,t):f(c,o)},g=Object.assign,w=function(n,t){return e(t)||o(t)?function(n,t){const r=n.length,e=t.length;let o=-1;for(;++o<e;)n[r+o]=t[o];return n}(n,t):(n.push(t),n)},b="function"==typeof Buffer,x=b?Buffer.alloc:f,j=function(n,t){const r=n.length,e=b&&n.constructor==Buffer?x(r+t.length):new n.constructor(r+t.length);return e.set(n),e.set(t,r),e},m=function(n,t){return e(t)||o(t)?j(n,t):j(n,[t])},S=function(n,t){return null!=(r=t)&&"function"==typeof r.pipe?((n,t)=>new Promise(((n,t)=>function(r,e){var o,u;t.on("data",(n=>function(t,r,e){return n.write(t,r,e),n})(n)),t.on("end",(o=r,u=n,function(){return o(u)})),t.on("error",e)})(n,t)))(n,t):(n.write(t),n);var r},O=function(n,t){if(null!=t&&t.constructor==Set){for(const r of t)n.add(r);return n}return n.add(t)},B=function(n,t){return n.concat(t)},A=function(t,r,e){const o=v(t,r(f),null);return n(o)?o.then((u=e,function(){return u})):e;var u},M=function(r,f,i){if(e(i))return v(r,f(w),i);if(o(i)){const e=v(r,f(w),[]);return n(e)?e.then(u(m,i,t)):m(i,e)}if(null==i)return A(r,f,i);const a=i.constructor;return"string"==typeof i||a==String?v(r,f(c),i):"function"==typeof i.concat?v(r,f(B),i):"function"==typeof i.write?v(r,f(S),i):a==Set?v(r,f(O),i):a==Object?v(r,f(g),i):A(r,f,i)},T=function(e,o,u){if("function"==typeof u){const f=u(e);return n(f)?f.then(r(M,e,o,t)):M(e,o,f)}return n(u)?u.then(r(M,e,o,t)):M(e,o,u)};return function(...e){return"function"==typeof e[0]?r(T,t,e[0],e[1]):n(e[0])?e[0].then(r(T,t,e[1],e[2])):T(e[0],e[1],e[2])}}());
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectGetFirstKey=function(r){for(const e in r)return e},objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,s=e,a=__,y=t,f=c,(i=r)==__?curry5ResolveArg0(u,s,a,y,f):s==__?curry5ResolveArg1(u,i,a,y,f):a==__?curry5ResolveArg2(u,i,s,y,f):y==__?curry5ResolveArg3(u,i,s,a,f):curry5ResolveArg4(u,i,s,a,y)))}var u,i,s,a,y,f;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},funcConcatSync=(r,e)=>function(...n){return e(r(...n))},generatorFunctionReduce=(r,e,n)=>funcConcatSync(r,curry3(iteratorReduce,__,e,n)),asyncGeneratorFunctionReduce=(r,e,n)=>funcConcatSync(r,curry3(asyncIteratorReduce,__,e,n)),reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){const t=r[0];return isArray(t)?arrayReduce(t,e,n):"function"==typeof t?objectToString(t)==generatorFunctionTag?generatorFunctionReduce(t,e,n):isAsyncGeneratorFunction(t)?asyncGeneratorFunctionReduce(t,e,n):(o=genericReduce,c=__,u=1==r.length?reducerConcat(e,t):r.reduce(reducerConcat,e),i=n,c==__?curryArgs3ResolveArgs0(o,u,i):u==__?curryArgs3ResolveArgs1(o,c,i):curryArgs3ResolveArgs2(o,c,u)):null==t?void 0===n?curry2(e,t,__):e(n,t):t.constructor==Map?mapReduce(t,e,n):"function"==typeof t[symbolIterator]?iteratorReduce(t[symbolIterator](),e,n):"function"==typeof t[symbolAsyncIterator]?asyncIteratorReduce(t[symbolAsyncIterator](),e,n):"function"==typeof t.reduce?t.reduce(e,n):"function"==typeof t.chain?t.chain(curry2(e,n,__)):"function"==typeof t.flatMap?t.flatMap(curry2(e,n,__)):t.constructor==Object?objectReduce(t,e,n):void 0===n?curry2(e,t,__):e(n,t);var o,c,u,i},objectAssign=Object.assign,isArrayLike=function(r){return null!=r&&r.length>0},_arrayExtend=function(r,e){const n=r.length,t=e.length;let o=-1;for(;++o<t;)r[n+o]=e[o];return r},arrayExtend=function(r,e){return null!=(n=e)&&n.length>0?_arrayExtend(r,e):(r.push(e),r);var n},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const n=r.length,t=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(n+e.length):new r.constructor(n+e.length);return t.set(r),t.set(e,n),t},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},thunkify1=(r,e)=>function(){return r(e)},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,n,t){return r.write(e,n,t),r},_streamExtendExecutor=(r,e)=>function(n,t){var o,c;e.on("data",__streamWrite(r)),e.on("end",(o=n,c=r,function(){return o(c)})),e.on("error",t)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return null!=(n=e)&&"function"==typeof n.pipe?_streamExtend(r,e):(r.write(e),r);var n},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const n of e)r.add(n);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,n){const t=genericReduce(r,e(noop),null);return isPromise(t)?t.then((o=n,function(){return o})):n;var o},genericTransform=function(r,e,n){if(isArray(n))return genericReduce(r,e(arrayExtend),n);if(isBinary(n)){const t=genericReduce(r,e(arrayExtend),[]);return isPromise(t)?t.then(curry2(binaryExtend,n,__)):binaryExtend(n,t)}if(null==n)return identityTransform(r,e,n);const t=n.constructor;return"string"==typeof n||t==String?genericReduce(r,e(add),n):"function"==typeof n.concat?genericReduce(r,e(callConcat),n):"function"==typeof n.write?genericReduce(r,e(streamExtend),n):t==Set?genericReduce(r,e(setExtend),n):t==Object?genericReduce(r,e(objectAssign),n):identityTransform(r,e,n)},transform=function(r,e){return"function"==typeof e?function(...n){const t=e(...n);return isPromise(t)?t.then(curry3(genericTransform,n,r,__)):genericTransform(n,r,t)}:function(...n){return genericTransform(n,r,e)}};export default transform;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,s=e,a=__,f=t,y=c,(i=r)==__?curry5ResolveArg0(u,s,a,f,y):s==__?curry5ResolveArg1(u,i,a,f,y):a==__?curry5ResolveArg2(u,i,s,f,y):f==__?curry5ResolveArg3(u,i,s,a,y):curry5ResolveArg4(u,i,s,a,f)))}var u,i,s,a,f,y;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},objectAssign=Object.assign,_arrayExtend=function(r,e){const n=r.length,t=e.length;let o=-1;for(;++o<t;)r[n+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const n=r.length,t=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(n+e.length):new r.constructor(n+e.length);return t.set(r),t.set(e,n),t},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},thunkify1=(r,e)=>function(){return r(e)},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,n,t){return r.write(e,n,t),r},_streamExtendExecutor=(r,e)=>function(n,t){var o,c;e.on("data",__streamWrite(r)),e.on("end",(o=n,c=r,function(){return o(c)})),e.on("error",t)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return null!=(n=e)&&"function"==typeof n.pipe?_streamExtend(r,e):(r.write(e),r);var n},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const n of e)r.add(n);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,n){const t=genericReduce(r,e(noop),null);return isPromise(t)?t.then((o=n,function(){return o})):n;var o},genericTransform=function(r,e,n){if(isArray(n))return genericReduce(r,e(arrayExtend),n);if(isBinary(n)){const t=genericReduce(r,e(arrayExtend),[]);return isPromise(t)?t.then(curry2(binaryExtend,n,__)):binaryExtend(n,t)}if(null==n)return identityTransform(r,e,n);const t=n.constructor;return"string"==typeof n||t==String?genericReduce(r,e(add),n):"function"==typeof n.concat?genericReduce(r,e(callConcat),n):"function"==typeof n.write?genericReduce(r,e(streamExtend),n):t==Set?genericReduce(r,e(setExtend),n):t==Object?genericReduce(r,e(objectAssign),n):identityTransform(r,e,n)},_transform=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)}return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])};export default transform;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -299,13 +299,6 @@ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
299
299
 
300
300
  const objectKeys = Object.keys
301
301
 
302
- const objectGetFirstKey = function (object) {
303
- for (const key in object) {
304
- return key
305
- }
306
- return undefined
307
- }
308
-
309
302
  const objectReduceAsync = async function (object, reducer, result, keys, index) {
310
303
  const keysLength = keys.length
311
304
  while (++index < keysLength) {
@@ -366,24 +359,6 @@ const mapReduce = function (map, reducer, result) {
366
359
  return result
367
360
  }
368
361
 
369
- const funcConcatSync = (
370
- funcA, funcB,
371
- ) => function pipedFunction(...args) {
372
- return funcB(funcA(...args))
373
- }
374
-
375
- const generatorFunctionReduce = (
376
- generatorFunction, reducer, result,
377
- ) => funcConcatSync(
378
- generatorFunction,
379
- curry3(iteratorReduce, __, reducer, result))
380
-
381
- const asyncGeneratorFunctionReduce = (
382
- asyncGeneratorFunction, reducer, result,
383
- ) => funcConcatSync(
384
- asyncGeneratorFunction,
385
- curry3(asyncIteratorReduce, __, reducer, result))
386
-
387
362
  const reducerConcat = (
388
363
  reducerA, reducerB,
389
364
  ) => function pipedReducer(result, item) {
@@ -393,26 +368,10 @@ const reducerConcat = (
393
368
  : reducerB(intermediate, item)
394
369
  }
395
370
 
396
- const genericReduce = function (args, reducer, result) {
397
- const collection = args[0]
371
+ const genericReduce = function (collection, reducer, result) {
398
372
  if (isArray(collection)) {
399
373
  return arrayReduce(collection, reducer, result)
400
374
  }
401
- if (typeof collection == 'function') {
402
- if (isGeneratorFunction(collection)) {
403
- return generatorFunctionReduce(collection, reducer, result)
404
- }
405
- if (isAsyncGeneratorFunction(collection)) {
406
- return asyncGeneratorFunctionReduce(collection, reducer, result)
407
- }
408
- return curryArgs3(
409
- genericReduce,
410
- __,
411
- args.length == 1
412
- ? reducerConcat(reducer, collection)
413
- : args.reduce(reducerConcat, reducer),
414
- result)
415
- }
416
375
  if (collection == null) {
417
376
  return result === undefined
418
377
  ? curry2(reducer, collection, __)
@@ -449,10 +408,6 @@ const genericReduce = function (args, reducer, result) {
449
408
 
450
409
  const objectAssign = Object.assign
451
410
 
452
- const isArrayLike = function (value) {
453
- return value != null && value.length > 0
454
- }
455
-
456
411
  const _arrayExtend = function (array, values) {
457
412
  const arrayLength = array.length,
458
413
  valuesLength = values.length
@@ -464,7 +419,7 @@ const _arrayExtend = function (array, values) {
464
419
  }
465
420
 
466
421
  const arrayExtend = function (array, values) {
467
- if (isArrayLike(values)) {
422
+ if (isArray(values) || isBinary(values)) {
468
423
  return _arrayExtend(array, values)
469
424
  }
470
425
  array.push(values)
@@ -539,57 +494,66 @@ const callConcat = function (object, values) {
539
494
  return object.concat(values)
540
495
  }
541
496
 
542
- const identityTransform = function (args, transducer, result) {
543
- const nil = genericReduce(args, transducer(noop), null)
497
+ const identityTransform = function (collection, transducer, result) {
498
+ const nil = genericReduce(collection, transducer(noop), null)
544
499
  return isPromise(nil) ? nil.then(always(result)) : result
545
500
  }
546
501
 
547
- const genericTransform = function (args, transducer, result) {
502
+ const genericTransform = function (collection, transducer, result) {
548
503
  if (isArray(result)) {
549
- return genericReduce(args, transducer(arrayExtend), result)
504
+ return genericReduce(collection, transducer(arrayExtend), result)
550
505
  }
551
506
  if (isBinary(result)) {
552
- const intermediateArray = genericReduce(args, transducer(arrayExtend), [])
507
+ const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
553
508
  return isPromise(intermediateArray)
554
509
  ? intermediateArray.then(curry2(binaryExtend, result, __))
555
510
  : binaryExtend(result, intermediateArray)
556
511
  }
557
512
  if (result == null) {
558
- return identityTransform(args, transducer, result)
513
+ return identityTransform(collection, transducer, result)
559
514
  }
560
515
 
561
516
  const resultConstructor = result.constructor
562
517
  if (typeof result == 'string' || resultConstructor == String) {
563
518
  // TODO: use array + join over adding
564
- return genericReduce(args, transducer(add), result)
519
+ return genericReduce(collection, transducer(add), result)
565
520
  }
566
521
  if (typeof result.concat == 'function') {
567
- return genericReduce(args, transducer(callConcat), result)
522
+ return genericReduce(collection, transducer(callConcat), result)
568
523
  }
569
524
  if (typeof result.write == 'function') {
570
- return genericReduce(args, transducer(streamExtend), result)
525
+ return genericReduce(collection, transducer(streamExtend), result)
571
526
  }
572
527
  if (resultConstructor == Set) {
573
- return genericReduce(args, transducer(setExtend), result)
528
+ return genericReduce(collection, transducer(setExtend), result)
574
529
  }
575
530
  if (resultConstructor == Object) {
576
- return genericReduce(args, transducer(objectAssign), result)
531
+ return genericReduce(collection, transducer(objectAssign), result)
577
532
  }
578
- return identityTransform(args, transducer, result)
533
+ return identityTransform(collection, transducer, result)
579
534
  }
580
535
 
581
- const transform = function (transducer, init) {
582
- if (typeof init == 'function') {
583
- return function transforming(...args) {
584
- const result = init(...args)
585
- return isPromise(result)
586
- ? result.then(curry3(genericTransform, args, transducer, __))
587
- : genericTransform(args, transducer, result)
588
- }
536
+ // _transform(collection any, transducer function, initialValue function|any) -> Promise
537
+ const _transform = function (collection, transducer, initialValue) {
538
+ if (typeof initialValue == 'function') {
539
+ const actualInitialValue = initialValue(collection)
540
+ return isPromise(actualInitialValue)
541
+ ? actualInitialValue.then(curry3(genericTransform, collection, transducer, __))
542
+ : genericTransform(collection, transducer, actualInitialValue)
543
+ }
544
+ return isPromise(initialValue)
545
+ ? initialValue.then(curry3(genericTransform, collection, transducer, __))
546
+ : genericTransform(collection, transducer, initialValue)
547
+ }
548
+
549
+ const transform = function (...args) {
550
+ if (typeof args[0] == 'function') {
551
+ return curry3(_transform, __, args[0], args[1])
589
552
  }
590
- return function transforming(...args) {
591
- return genericTransform(args, transducer, init)
553
+ if (isPromise(args[0])) {
554
+ return args[0].then(curry3(_transform, __, args[1], args[2]))
592
555
  }
556
+ return _transform(args[0], args[1], args[2])
593
557
  }
594
558
 
595
559
  export default transform
@@ -1,12 +1,14 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
8
  const isPromise = value => value != null && typeof value.then == 'function'
9
9
 
10
+ const promiseAll = Promise.all.bind(Promise)
11
+
10
12
  const __ = Symbol.for('placeholder')
11
13
 
12
14
  // argument resolver for curry3
@@ -44,31 +46,45 @@ const catcherApply = function (catcher, err, args) {
44
46
  return catcher(err, ...args)
45
47
  }
46
48
 
49
+ const areAnyValuesPromises = function (values) {
50
+ const length = values.length
51
+ let index = -1
52
+ while (++index < length) {
53
+ const value = values[index]
54
+ if (isPromise(value)) {
55
+ return true
56
+ }
57
+ }
58
+ return false
59
+ }
60
+
61
+ // _tryCatch(tryer function, catcher function, args Array) -> Promise
62
+ const _tryCatch = function (tryer, catcher, args) {
63
+ try {
64
+ const result = tryer(...args)
65
+ return isPromise(result)
66
+ ? result.catch(curry3(catcherApply, catcher, __, args))
67
+ : result
68
+ } catch (error) {
69
+ return catcher(error, ...args)
70
+ }
71
+ }
72
+
47
73
  const tryCatch = function (...args) {
48
74
  if (args.length > 2) {
49
75
  const catcher = args.pop(),
50
76
  tryer = args.pop()
51
- try {
52
- const result = tryer(...args)
53
- return isPromise(result)
54
- ? result.catch(curry3(catcherApply, catcher, __, args))
55
- : result
56
- } catch (error) {
57
- return catcher(error, ...args)
77
+ if (areAnyValuesPromises(args)) {
78
+ return promiseAll(args)
79
+ .then(curry3(_tryCatch, tryer, catcher, __))
58
80
  }
81
+ return _tryCatch(tryer, catcher, args)
59
82
  }
60
83
 
61
84
  const tryer = args[0],
62
85
  catcher = args[1]
63
86
  return function tryCatcher(...args) {
64
- try {
65
- const result = tryer(...args)
66
- return isPromise(result)
67
- ? result.catch(curry3(catcherApply, catcher, __, args))
68
- : result
69
- } catch (error) {
70
- return catcher(error, ...args)
71
- }
87
+ return _tryCatch(tryer, catcher, args)
72
88
  }
73
89
  }
74
90
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,t,c)=>function(e){return r(e,t,c)},curry3ResolveArg1=(r,t,c)=>function(e){return r(t,e,c)},curry3ResolveArg2=(r,t,c)=>function(e){return r(t,c,e)},curry3=function(r,t,c,e){return t==__?curry3ResolveArg0(r,c,e):c==__?curry3ResolveArg1(r,t,e):curry3ResolveArg2(r,t,c)},catcherApply=function(r,t,c){return r(t,...c)},tryCatch=function(...r){if(r.length>2){const t=r.pop(),c=r.pop();try{const e=c(...r);return isPromise(e)?e.catch(curry3(catcherApply,t,__,r)):e}catch(c){return t(c,...r)}}const t=r[0],c=r[1];return function(...r){try{const e=t(...r);return isPromise(e)?e.catch(curry3(catcherApply,c,__,r)):e}catch(t){return c(t,...r)}}};export default tryCatch;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,promiseAll=Promise.all.bind(Promise),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,t,e)=>function(n){return r(n,t,e)},curry3ResolveArg1=(r,t,e)=>function(n){return r(t,n,e)},curry3ResolveArg2=(r,t,e)=>function(n){return r(t,e,n)},curry3=function(r,t,e,n){return t==__?curry3ResolveArg0(r,e,n):e==__?curry3ResolveArg1(r,t,n):curry3ResolveArg2(r,t,e)},catcherApply=function(r,t,e){return r(t,...e)},areAnyValuesPromises=function(r){const t=r.length;let e=-1;for(;++e<t;){const t=r[e];if(isPromise(t))return!0}return!1},_tryCatch=function(r,t,e){try{const n=r(...e);return isPromise(n)?n.catch(curry3(catcherApply,t,__,e)):n}catch(r){return t(r,...e)}},tryCatch=function(...r){if(r.length>2){const t=r.pop(),e=r.pop();return areAnyValuesPromises(r)?promiseAll(r).then(curry3(_tryCatch,e,t,__)):_tryCatch(e,t,r)}const t=r[0],e=r[1];return function(...r){return _tryCatch(t,e,r)}};export default tryCatch;
package/dist/tryCatch.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -13,6 +13,8 @@
13
13
 
14
14
  const isPromise = value => value != null && typeof value.then == 'function'
15
15
 
16
+ const promiseAll = Promise.all.bind(Promise)
17
+
16
18
  const __ = Symbol.for('placeholder')
17
19
 
18
20
  // argument resolver for curry3
@@ -50,31 +52,45 @@ const catcherApply = function (catcher, err, args) {
50
52
  return catcher(err, ...args)
51
53
  }
52
54
 
55
+ const areAnyValuesPromises = function (values) {
56
+ const length = values.length
57
+ let index = -1
58
+ while (++index < length) {
59
+ const value = values[index]
60
+ if (isPromise(value)) {
61
+ return true
62
+ }
63
+ }
64
+ return false
65
+ }
66
+
67
+ // _tryCatch(tryer function, catcher function, args Array) -> Promise
68
+ const _tryCatch = function (tryer, catcher, args) {
69
+ try {
70
+ const result = tryer(...args)
71
+ return isPromise(result)
72
+ ? result.catch(curry3(catcherApply, catcher, __, args))
73
+ : result
74
+ } catch (error) {
75
+ return catcher(error, ...args)
76
+ }
77
+ }
78
+
53
79
  const tryCatch = function (...args) {
54
80
  if (args.length > 2) {
55
81
  const catcher = args.pop(),
56
82
  tryer = args.pop()
57
- try {
58
- const result = tryer(...args)
59
- return isPromise(result)
60
- ? result.catch(curry3(catcherApply, catcher, __, args))
61
- : result
62
- } catch (error) {
63
- return catcher(error, ...args)
83
+ if (areAnyValuesPromises(args)) {
84
+ return promiseAll(args)
85
+ .then(curry3(_tryCatch, tryer, catcher, __))
64
86
  }
87
+ return _tryCatch(tryer, catcher, args)
65
88
  }
66
89
 
67
90
  const tryer = args[0],
68
91
  catcher = args[1]
69
92
  return function tryCatcher(...args) {
70
- try {
71
- const result = tryer(...args)
72
- return isPromise(result)
73
- ? result.catch(curry3(catcherApply, catcher, __, args))
74
- : result
75
- } catch (error) {
76
- return catcher(error, ...args)
77
- }
93
+ return _tryCatch(tryer, catcher, args)
78
94
  }
79
95
  }
80
96
 
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(t,n){"object"==typeof module?module.exports=n:"function"==typeof define?define((()=>n)):t.tryCatch=n}("object"==typeof globalThis?globalThis:this,function(){"use strict";const t=t=>null!=t&&"function"==typeof t.then,n=Symbol.for("placeholder"),o=function(t,o,c,e){return o==n?((t,n,o)=>function(c){return t(c,n,o)})(t,c,e):c==n?((t,n,o)=>function(c){return t(n,c,o)})(t,o,e):((t,n,o)=>function(c){return t(n,o,c)})(t,o,c)},c=function(t,n,o){return t(n,...o)};return function(...e){if(e.length>2){const r=e.pop(),u=e.pop();try{const f=u(...e);return t(f)?f.catch(o(c,r,n,e)):f}catch(t){return r(t,...e)}}const r=e[0],u=e[1];return function(...e){try{const f=r(...e);return t(f)?f.catch(o(c,u,n,e)):f}catch(t){return u(t,...e)}}}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tryCatch=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Promise.all.bind(Promise),o=Symbol.for("placeholder"),e=function(n,t,e,r){return t==o?((n,t,o)=>function(e){return n(e,t,o)})(n,e,r):e==o?((n,t,o)=>function(e){return n(t,e,o)})(n,t,r):((n,t,o)=>function(e){return n(t,o,e)})(n,t,e)},r=function(n,t,o){return n(t,...o)},u=function(t,u,c){try{const i=t(...c);return n(i)?i.catch(e(r,u,o,c)):i}catch(n){return u(n,...c)}};return function(...r){if(r.length>2){const c=r.pop(),i=r.pop();return function(t){const o=t.length;let e=-1;for(;++e<o;){const o=t[e];if(n(o))return!0}return!1}(r)?t(r).then(e(u,i,c,o)):u(i,c,r)}const c=r[0],i=r[1];return function(...n){return u(c,i,n)}}}());
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,t,c)=>function(e){return r(e,t,c)},curry3ResolveArg1=(r,t,c)=>function(e){return r(t,e,c)},curry3ResolveArg2=(r,t,c)=>function(e){return r(t,c,e)},curry3=function(r,t,c,e){return t==__?curry3ResolveArg0(r,c,e):c==__?curry3ResolveArg1(r,t,e):curry3ResolveArg2(r,t,c)},catcherApply=function(r,t,c){return r(t,...c)},tryCatch=function(...r){if(r.length>2){const t=r.pop(),c=r.pop();try{const e=c(...r);return isPromise(e)?e.catch(curry3(catcherApply,t,__,r)):e}catch(c){return t(c,...r)}}const t=r[0],c=r[1];return function(...r){try{const e=t(...r);return isPromise(e)?e.catch(curry3(catcherApply,c,__,r)):e}catch(t){return c(t,...r)}}};export default tryCatch;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,promiseAll=Promise.all.bind(Promise),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,t,e)=>function(n){return r(n,t,e)},curry3ResolveArg1=(r,t,e)=>function(n){return r(t,n,e)},curry3ResolveArg2=(r,t,e)=>function(n){return r(t,e,n)},curry3=function(r,t,e,n){return t==__?curry3ResolveArg0(r,e,n):e==__?curry3ResolveArg1(r,t,n):curry3ResolveArg2(r,t,e)},catcherApply=function(r,t,e){return r(t,...e)},areAnyValuesPromises=function(r){const t=r.length;let e=-1;for(;++e<t;){const t=r[e];if(isPromise(t))return!0}return!1},_tryCatch=function(r,t,e){try{const n=r(...e);return isPromise(n)?n.catch(curry3(catcherApply,t,__,e)):n}catch(r){return t(r,...e)}},tryCatch=function(...r){if(r.length>2){const t=r.pop(),e=r.pop();return areAnyValuesPromises(r)?promiseAll(r).then(curry3(_tryCatch,e,t,__)):_tryCatch(e,t,r)}const t=r[0],e=r[1];return function(...r){return _tryCatch(t,e,r)}};export default tryCatch;
package/dist/tryCatch.mjs CHANGED
@@ -1,12 +1,14 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
8
  const isPromise = value => value != null && typeof value.then == 'function'
9
9
 
10
+ const promiseAll = Promise.all.bind(Promise)
11
+
10
12
  const __ = Symbol.for('placeholder')
11
13
 
12
14
  // argument resolver for curry3
@@ -44,31 +46,45 @@ const catcherApply = function (catcher, err, args) {
44
46
  return catcher(err, ...args)
45
47
  }
46
48
 
49
+ const areAnyValuesPromises = function (values) {
50
+ const length = values.length
51
+ let index = -1
52
+ while (++index < length) {
53
+ const value = values[index]
54
+ if (isPromise(value)) {
55
+ return true
56
+ }
57
+ }
58
+ return false
59
+ }
60
+
61
+ // _tryCatch(tryer function, catcher function, args Array) -> Promise
62
+ const _tryCatch = function (tryer, catcher, args) {
63
+ try {
64
+ const result = tryer(...args)
65
+ return isPromise(result)
66
+ ? result.catch(curry3(catcherApply, catcher, __, args))
67
+ : result
68
+ } catch (error) {
69
+ return catcher(error, ...args)
70
+ }
71
+ }
72
+
47
73
  const tryCatch = function (...args) {
48
74
  if (args.length > 2) {
49
75
  const catcher = args.pop(),
50
76
  tryer = args.pop()
51
- try {
52
- const result = tryer(...args)
53
- return isPromise(result)
54
- ? result.catch(curry3(catcherApply, catcher, __, args))
55
- : result
56
- } catch (error) {
57
- return catcher(error, ...args)
77
+ if (areAnyValuesPromises(args)) {
78
+ return promiseAll(args)
79
+ .then(curry3(_tryCatch, tryer, catcher, __))
58
80
  }
81
+ return _tryCatch(tryer, catcher, args)
59
82
  }
60
83
 
61
84
  const tryer = args[0],
62
85
  catcher = args[1]
63
86
  return function tryCatcher(...args) {
64
- try {
65
- const result = tryer(...args)
66
- return isPromise(result)
67
- ? result.catch(curry3(catcherApply, catcher, __, args))
68
- : result
69
- } catch (error) {
70
- return catcher(error, ...args)
71
- }
87
+ return _tryCatch(tryer, catcher, args)
72
88
  }
73
89
  }
74
90
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isString=function(r){return"string"==typeof r||null!=r&&r.constructor==String},isArray=Array.isArray,append=r=>function(n){if(isArray(n))return isArray(r)?[...n,...r]:[...n,r];if(isString(n)){if(!isString(r))throw new TypeError(`${r} is not a string`);return`${n}${r}`}throw new TypeError(`${n} is not an Array or string`)};export default append;
package/dist/x/append.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isString=function(r){return"string"==typeof r||null!=r&&r.constructor==String},isArray=Array.isArray,append=r=>function(n){if(isArray(n))return isArray(r)?[...n,...r]:[...n,r];if(isString(n)){if(!isString(r))throw new TypeError(`${r} is not a string`);return`${n}${r}`}throw new TypeError(`${n} is not an Array or string`)};export default append;
package/dist/x/append.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const callProp=(l,...o)=>function(r){return r[l](...o)};export default callProp;