rubico 2.0.1 → 2.2.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 (501) hide show
  1. package/README.md +10 -8
  2. package/Transducer.js +28 -0
  3. package/_internal/genericTransform.js +30 -28
  4. package/_internal/reducerTryCatch.js +55 -0
  5. package/dist/Transducer.es.js +28 -1
  6. package/dist/Transducer.es.min.js +2 -2
  7. package/dist/Transducer.js +28 -1
  8. package/dist/Transducer.min.js +2 -2
  9. package/dist/Transducer.mjs +28 -1
  10. package/dist/__.es.js +1 -1
  11. package/dist/__.es.min.js +1 -1
  12. package/dist/__.js +1 -1
  13. package/dist/__.min.js +1 -1
  14. package/dist/__.mjs +1 -1
  15. package/dist/all.es.js +1 -1
  16. package/dist/all.es.min.js +1 -1
  17. package/dist/all.js +1 -1
  18. package/dist/all.min.js +1 -1
  19. package/dist/all.mjs +1 -1
  20. package/dist/always.es.js +1 -1
  21. package/dist/always.es.min.js +1 -1
  22. package/dist/always.js +1 -1
  23. package/dist/always.min.js +1 -1
  24. package/dist/always.mjs +1 -1
  25. package/dist/and.es.js +1 -1
  26. package/dist/and.es.min.js +1 -1
  27. package/dist/and.js +1 -1
  28. package/dist/and.min.js +1 -1
  29. package/dist/and.mjs +1 -1
  30. package/dist/assign.es.js +1 -1
  31. package/dist/assign.es.min.js +1 -1
  32. package/dist/assign.js +1 -1
  33. package/dist/assign.min.js +1 -1
  34. package/dist/assign.mjs +1 -1
  35. package/dist/compose.es.js +1 -1
  36. package/dist/compose.es.min.js +1 -1
  37. package/dist/compose.js +1 -1
  38. package/dist/compose.min.js +1 -1
  39. package/dist/compose.mjs +1 -1
  40. package/dist/curry.es.js +1 -1
  41. package/dist/curry.es.min.js +1 -1
  42. package/dist/curry.js +1 -1
  43. package/dist/curry.min.js +1 -1
  44. package/dist/curry.mjs +1 -1
  45. package/dist/eq.es.js +1 -1
  46. package/dist/eq.es.min.js +1 -1
  47. package/dist/eq.js +1 -1
  48. package/dist/eq.min.js +1 -1
  49. package/dist/eq.mjs +1 -1
  50. package/dist/every.es.js +1 -1
  51. package/dist/every.es.min.js +1 -1
  52. package/dist/every.js +1 -1
  53. package/dist/every.min.js +1 -1
  54. package/dist/every.mjs +1 -1
  55. package/dist/filter.es.js +1 -1
  56. package/dist/filter.es.min.js +1 -1
  57. package/dist/filter.js +1 -1
  58. package/dist/filter.min.js +1 -1
  59. package/dist/filter.mjs +1 -1
  60. package/dist/flatMap.es.js +1 -1
  61. package/dist/flatMap.es.min.js +1 -1
  62. package/dist/flatMap.js +1 -1
  63. package/dist/flatMap.min.js +1 -1
  64. package/dist/flatMap.mjs +1 -1
  65. package/dist/forEach.es.js +1 -1
  66. package/dist/forEach.es.min.js +1 -1
  67. package/dist/forEach.js +1 -1
  68. package/dist/forEach.min.js +1 -1
  69. package/dist/forEach.mjs +1 -1
  70. package/dist/get.es.js +1 -1
  71. package/dist/get.es.min.js +1 -1
  72. package/dist/get.js +1 -1
  73. package/dist/get.min.js +1 -1
  74. package/dist/get.mjs +1 -1
  75. package/dist/gt.es.js +1 -1
  76. package/dist/gt.es.min.js +1 -1
  77. package/dist/gt.js +1 -1
  78. package/dist/gt.min.js +1 -1
  79. package/dist/gt.mjs +1 -1
  80. package/dist/gte.es.js +1 -1
  81. package/dist/gte.es.min.js +1 -1
  82. package/dist/gte.js +1 -1
  83. package/dist/gte.min.js +1 -1
  84. package/dist/gte.mjs +1 -1
  85. package/dist/lt.es.js +1 -1
  86. package/dist/lt.es.min.js +1 -1
  87. package/dist/lt.js +1 -1
  88. package/dist/lt.min.js +1 -1
  89. package/dist/lt.mjs +1 -1
  90. package/dist/lte.es.js +1 -1
  91. package/dist/lte.es.min.js +1 -1
  92. package/dist/lte.js +1 -1
  93. package/dist/lte.min.js +1 -1
  94. package/dist/lte.mjs +1 -1
  95. package/dist/map.es.js +1 -1
  96. package/dist/map.es.min.js +1 -1
  97. package/dist/map.js +1 -1
  98. package/dist/map.min.js +1 -1
  99. package/dist/map.mjs +1 -1
  100. package/dist/not.es.js +1 -1
  101. package/dist/not.es.min.js +1 -1
  102. package/dist/not.js +1 -1
  103. package/dist/not.min.js +1 -1
  104. package/dist/not.mjs +1 -1
  105. package/dist/omit.es.js +1 -1
  106. package/dist/omit.es.min.js +1 -1
  107. package/dist/omit.js +1 -1
  108. package/dist/omit.min.js +1 -1
  109. package/dist/omit.mjs +1 -1
  110. package/dist/or.es.js +1 -1
  111. package/dist/or.es.min.js +1 -1
  112. package/dist/or.js +1 -1
  113. package/dist/or.min.js +1 -1
  114. package/dist/or.mjs +1 -1
  115. package/dist/pick.es.js +1 -1
  116. package/dist/pick.es.min.js +1 -1
  117. package/dist/pick.js +1 -1
  118. package/dist/pick.min.js +1 -1
  119. package/dist/pick.mjs +1 -1
  120. package/dist/pipe.es.js +1 -1
  121. package/dist/pipe.es.min.js +1 -1
  122. package/dist/pipe.js +1 -1
  123. package/dist/pipe.min.js +1 -1
  124. package/dist/pipe.mjs +1 -1
  125. package/dist/reduce.es.js +1 -1
  126. package/dist/reduce.es.min.js +1 -1
  127. package/dist/reduce.js +1 -1
  128. package/dist/reduce.min.js +1 -1
  129. package/dist/reduce.mjs +1 -1
  130. package/dist/rubico.es.js +57 -46
  131. package/dist/rubico.es.min.js +2 -2
  132. package/dist/rubico.global.js +57 -46
  133. package/dist/rubico.global.min.js +2 -2
  134. package/dist/rubico.js +57 -46
  135. package/dist/rubico.min.js +2 -2
  136. package/dist/rubico.mjs +57 -46
  137. package/dist/set.es.js +1 -1
  138. package/dist/set.es.min.js +1 -1
  139. package/dist/set.js +1 -1
  140. package/dist/set.min.js +1 -1
  141. package/dist/set.mjs +1 -1
  142. package/dist/some.es.js +1 -1
  143. package/dist/some.es.min.js +1 -1
  144. package/dist/some.js +1 -1
  145. package/dist/some.min.js +1 -1
  146. package/dist/some.mjs +1 -1
  147. package/dist/switchCase.es.js +1 -1
  148. package/dist/switchCase.es.min.js +1 -1
  149. package/dist/switchCase.js +1 -1
  150. package/dist/switchCase.min.js +1 -1
  151. package/dist/switchCase.mjs +1 -1
  152. package/dist/tap.es.js +32 -2
  153. package/dist/tap.es.min.js +2 -2
  154. package/dist/tap.js +32 -2
  155. package/dist/tap.min.js +2 -2
  156. package/dist/tap.mjs +32 -2
  157. package/dist/thunkify.es.js +1 -1
  158. package/dist/thunkify.es.min.js +1 -1
  159. package/dist/thunkify.js +1 -1
  160. package/dist/thunkify.min.js +1 -1
  161. package/dist/thunkify.mjs +1 -1
  162. package/dist/transform.es.js +26 -24
  163. package/dist/transform.es.min.js +2 -2
  164. package/dist/transform.js +26 -24
  165. package/dist/transform.min.js +2 -2
  166. package/dist/transform.mjs +26 -24
  167. package/dist/tryCatch.es.js +1 -1
  168. package/dist/tryCatch.es.min.js +1 -1
  169. package/dist/tryCatch.js +1 -1
  170. package/dist/tryCatch.min.js +1 -1
  171. package/dist/tryCatch.mjs +1 -1
  172. package/dist/x/append.es.js +1 -1
  173. package/dist/x/append.es.min.js +1 -1
  174. package/dist/x/append.js +1 -1
  175. package/dist/x/append.min.js +1 -1
  176. package/dist/x/append.mjs +1 -1
  177. package/dist/x/callProp.es.js +1 -1
  178. package/dist/x/callProp.es.min.js +1 -1
  179. package/dist/x/callProp.js +1 -1
  180. package/dist/x/callProp.min.js +1 -1
  181. package/dist/x/callProp.mjs +1 -1
  182. package/dist/x/defaultsDeep.es.js +1 -1
  183. package/dist/x/defaultsDeep.es.min.js +1 -1
  184. package/dist/x/defaultsDeep.js +1 -1
  185. package/dist/x/defaultsDeep.min.js +1 -1
  186. package/dist/x/defaultsDeep.mjs +1 -1
  187. package/dist/x/differenceWith.es.js +1 -1
  188. package/dist/x/differenceWith.es.min.js +1 -1
  189. package/dist/x/differenceWith.js +1 -1
  190. package/dist/x/differenceWith.min.js +1 -1
  191. package/dist/x/differenceWith.mjs +1 -1
  192. package/dist/x/filterOut.es.js +1 -1
  193. package/dist/x/filterOut.es.min.js +1 -1
  194. package/dist/x/filterOut.js +1 -1
  195. package/dist/x/filterOut.min.js +1 -1
  196. package/dist/x/filterOut.mjs +1 -1
  197. package/dist/x/find.es.js +1 -1
  198. package/dist/x/find.es.min.js +1 -1
  199. package/dist/x/find.js +1 -1
  200. package/dist/x/find.min.js +1 -1
  201. package/dist/x/find.mjs +1 -1
  202. package/dist/x/findIndex.es.js +1 -1
  203. package/dist/x/findIndex.es.min.js +1 -1
  204. package/dist/x/findIndex.js +1 -1
  205. package/dist/x/findIndex.min.js +1 -1
  206. package/dist/x/findIndex.mjs +1 -1
  207. package/dist/x/first.es.js +1 -1
  208. package/dist/x/first.es.min.js +1 -1
  209. package/dist/x/first.js +1 -1
  210. package/dist/x/first.min.js +1 -1
  211. package/dist/x/first.mjs +1 -1
  212. package/dist/x/flatten.es.js +1 -1
  213. package/dist/x/flatten.es.min.js +1 -1
  214. package/dist/x/flatten.js +1 -1
  215. package/dist/x/flatten.min.js +1 -1
  216. package/dist/x/flatten.mjs +1 -1
  217. package/dist/x/groupBy.es.js +1 -1
  218. package/dist/x/groupBy.es.min.js +1 -1
  219. package/dist/x/groupBy.js +1 -1
  220. package/dist/x/groupBy.min.js +1 -1
  221. package/dist/x/groupBy.mjs +1 -1
  222. package/dist/x/has.es.js +1 -1
  223. package/dist/x/has.es.min.js +1 -1
  224. package/dist/x/has.js +1 -1
  225. package/dist/x/has.min.js +1 -1
  226. package/dist/x/has.mjs +1 -1
  227. package/dist/x/identity.es.js +1 -1
  228. package/dist/x/identity.es.min.js +1 -1
  229. package/dist/x/identity.js +1 -1
  230. package/dist/x/identity.min.js +1 -1
  231. package/dist/x/identity.mjs +1 -1
  232. package/dist/x/includes.es.js +1 -1
  233. package/dist/x/includes.es.min.js +1 -1
  234. package/dist/x/includes.js +1 -1
  235. package/dist/x/includes.min.js +1 -1
  236. package/dist/x/includes.mjs +1 -1
  237. package/dist/x/isDeepEqual.es.js +1 -1
  238. package/dist/x/isDeepEqual.es.min.js +1 -1
  239. package/dist/x/isDeepEqual.js +1 -1
  240. package/dist/x/isDeepEqual.min.js +1 -1
  241. package/dist/x/isDeepEqual.mjs +1 -1
  242. package/dist/x/isEmpty.es.js +1 -1
  243. package/dist/x/isEmpty.es.min.js +1 -1
  244. package/dist/x/isEmpty.js +1 -1
  245. package/dist/x/isEmpty.min.js +1 -1
  246. package/dist/x/isEmpty.mjs +1 -1
  247. package/dist/x/isEqual.es.js +1 -1
  248. package/dist/x/isEqual.es.min.js +1 -1
  249. package/dist/x/isEqual.js +1 -1
  250. package/dist/x/isEqual.min.js +1 -1
  251. package/dist/x/isEqual.mjs +1 -1
  252. package/dist/x/isFunction.es.js +1 -1
  253. package/dist/x/isFunction.es.min.js +1 -1
  254. package/dist/x/isFunction.js +1 -1
  255. package/dist/x/isFunction.min.js +1 -1
  256. package/dist/x/isFunction.mjs +1 -1
  257. package/dist/x/isIn.es.js +1 -1
  258. package/dist/x/isIn.es.min.js +1 -1
  259. package/dist/x/isIn.js +1 -1
  260. package/dist/x/isIn.min.js +1 -1
  261. package/dist/x/isIn.mjs +1 -1
  262. package/dist/x/isObject.es.js +1 -1
  263. package/dist/x/isObject.es.min.js +1 -1
  264. package/dist/x/isObject.js +1 -1
  265. package/dist/x/isObject.min.js +1 -1
  266. package/dist/x/isObject.mjs +1 -1
  267. package/dist/x/isString.es.js +1 -1
  268. package/dist/x/isString.es.min.js +1 -1
  269. package/dist/x/isString.js +1 -1
  270. package/dist/x/isString.min.js +1 -1
  271. package/dist/x/isString.mjs +1 -1
  272. package/dist/x/keys.es.js +1 -1
  273. package/dist/x/keys.es.min.js +1 -1
  274. package/dist/x/keys.js +1 -1
  275. package/dist/x/keys.min.js +1 -1
  276. package/dist/x/keys.mjs +1 -1
  277. package/dist/x/last.es.js +1 -1
  278. package/dist/x/last.es.min.js +1 -1
  279. package/dist/x/last.js +1 -1
  280. package/dist/x/last.min.js +1 -1
  281. package/dist/x/last.mjs +1 -1
  282. package/dist/x/maxBy.es.js +1 -1
  283. package/dist/x/maxBy.es.min.js +1 -1
  284. package/dist/x/maxBy.js +1 -1
  285. package/dist/x/maxBy.min.js +1 -1
  286. package/dist/x/maxBy.mjs +1 -1
  287. package/dist/x/noop.es.js +1 -1
  288. package/dist/x/noop.es.min.js +1 -1
  289. package/dist/x/noop.js +1 -1
  290. package/dist/x/noop.min.js +1 -1
  291. package/dist/x/noop.mjs +1 -1
  292. package/dist/x/pluck.es.js +1 -1
  293. package/dist/x/pluck.es.min.js +1 -1
  294. package/dist/x/pluck.js +1 -1
  295. package/dist/x/pluck.min.js +1 -1
  296. package/dist/x/pluck.mjs +1 -1
  297. package/dist/x/prepend.es.js +1 -1
  298. package/dist/x/prepend.es.min.js +1 -1
  299. package/dist/x/prepend.js +1 -1
  300. package/dist/x/prepend.min.js +1 -1
  301. package/dist/x/prepend.mjs +1 -1
  302. package/dist/x/size.es.js +1 -1
  303. package/dist/x/size.es.min.js +1 -1
  304. package/dist/x/size.js +1 -1
  305. package/dist/x/size.min.js +1 -1
  306. package/dist/x/size.mjs +1 -1
  307. package/dist/x/trace.es.js +32 -2
  308. package/dist/x/trace.es.min.js +2 -2
  309. package/dist/x/trace.js +32 -2
  310. package/dist/x/trace.min.js +2 -2
  311. package/dist/x/trace.mjs +32 -2
  312. package/dist/x/unionWith.es.js +1 -1
  313. package/dist/x/unionWith.es.min.js +1 -1
  314. package/dist/x/unionWith.js +1 -1
  315. package/dist/x/unionWith.min.js +1 -1
  316. package/dist/x/unionWith.mjs +1 -1
  317. package/dist/x/uniq.es.js +1 -1
  318. package/dist/x/uniq.es.min.js +1 -1
  319. package/dist/x/uniq.js +1 -1
  320. package/dist/x/uniq.min.js +1 -1
  321. package/dist/x/uniq.mjs +1 -1
  322. package/dist/x/unless.es.js +1 -1
  323. package/dist/x/unless.es.min.js +1 -1
  324. package/dist/x/unless.js +1 -1
  325. package/dist/x/unless.min.js +1 -1
  326. package/dist/x/unless.mjs +1 -1
  327. package/dist/x/values.es.js +1 -1
  328. package/dist/x/values.es.min.js +1 -1
  329. package/dist/x/values.js +1 -1
  330. package/dist/x/values.min.js +1 -1
  331. package/dist/x/values.mjs +1 -1
  332. package/dist/x/when.es.js +1 -1
  333. package/dist/x/when.es.min.js +1 -1
  334. package/dist/x/when.js +1 -1
  335. package/dist/x/when.min.js +1 -1
  336. package/dist/x/when.mjs +1 -1
  337. package/es.js +57 -46
  338. package/index.js +57 -46
  339. package/package.json +43 -2
  340. package/tap.js +15 -4
  341. package/.eslintignore +0 -5
  342. package/.eslintrc.js +0 -330
  343. package/.github/workflows/nodejs.yml +0 -27
  344. package/.vscode/launch.json +0 -25
  345. package/AggregateReducer.test.js +0 -82
  346. package/CHANGELOG.md +0 -310
  347. package/CNAME +0 -1
  348. package/CODE_OF_CONDUCT.md +0 -128
  349. package/CONTRIBUTING.md +0 -4
  350. package/Transducer.test.js +0 -117
  351. package/_config.yml +0 -1
  352. package/_internal/improvedGenericTransform.js +0 -93
  353. package/archive/FlatMappingIterator-2020-09-28.js +0 -68
  354. package/archive/_Promise-2023-05-29.js +0 -93
  355. package/archive/arrayMap2-2023-05-29.js +0 -73
  356. package/archive/benchmarks-v1.9.7/all.js +0 -34
  357. package/archive/benchmarks-v1.9.7/and.js +0 -24
  358. package/archive/benchmarks-v1.9.7/any.js +0 -32
  359. package/archive/benchmarks-v1.9.7/assign.js +0 -174
  360. package/archive/benchmarks-v1.9.7/curry.js +0 -55
  361. package/archive/benchmarks-v1.9.7/eq.js +0 -25
  362. package/archive/benchmarks-v1.9.7/filter.js +0 -1322
  363. package/archive/benchmarks-v1.9.7/flatMap.js +0 -48
  364. package/archive/benchmarks-v1.9.7/forEach.js +0 -33
  365. package/archive/benchmarks-v1.9.7/fork.js +0 -123
  366. package/archive/benchmarks-v1.9.7/get.js +0 -44
  367. package/archive/benchmarks-v1.9.7/gt.js +0 -25
  368. package/archive/benchmarks-v1.9.7/gte.js +0 -25
  369. package/archive/benchmarks-v1.9.7/integration.js +0 -88
  370. package/archive/benchmarks-v1.9.7/lt.js +0 -25
  371. package/archive/benchmarks-v1.9.7/lte.js +0 -25
  372. package/archive/benchmarks-v1.9.7/map.js +0 -892
  373. package/archive/benchmarks-v1.9.7/misc.js +0 -470
  374. package/archive/benchmarks-v1.9.7/omit.js +0 -28
  375. package/archive/benchmarks-v1.9.7/or.js +0 -51
  376. package/archive/benchmarks-v1.9.7/pick.js +0 -24
  377. package/archive/benchmarks-v1.9.7/pipe.js +0 -152
  378. package/archive/benchmarks-v1.9.7/reduce.js +0 -739
  379. package/archive/benchmarks-v1.9.7/switchCase.js +0 -256
  380. package/archive/benchmarks-v1.9.7/tap.js +0 -90
  381. package/archive/benchmarks-v1.9.7/transform.js +0 -218
  382. package/archive/benchmarks-v1.9.7/tryCatch.js +0 -108
  383. package/archive/curry.js +0 -13
  384. package/archive/examples-v1.6.11/browserModule.html +0 -31
  385. package/archive/examples-v1.6.11/browserScript.html +0 -32
  386. package/archive/examples-v1.6.11/coolTransformToConsole.js +0 -1
  387. package/archive/examples-v1.6.11/denoLargeGasMap.js +0 -85
  388. package/archive/examples-v1.6.11/denoServer.js +0 -9
  389. package/archive/examples-v1.6.11/denoServerWithMiddleware.js +0 -55
  390. package/archive/examples-v1.6.11/logTodosRange.js +0 -21
  391. package/archive/examples-v1.6.11/makeARequest.html +0 -46
  392. package/archive/examples-v1.6.11/nodeComplexTransformation.js +0 -106
  393. package/archive/examples-v1.6.11/nodeConditionallyExtractIDs.js +0 -50
  394. package/archive/examples-v1.6.11/nodeFloatingPoint.js +0 -55
  395. package/archive/examples-v1.6.11/nodeGetAllJiraBoards.js +0 -45
  396. package/archive/examples-v1.6.11/nodeGetSocketIOClientsTotalCount.js +0 -34
  397. package/archive/examples-v1.6.11/nodeKafkaConsumer.js +0 -63
  398. package/archive/examples-v1.6.11/nodeMakeMultipleRequests.js +0 -55
  399. package/archive/examples-v1.6.11/nodeOnRecordAddTask.js +0 -34
  400. package/archive/examples-v1.6.11/nodePostRequestWithAuth.js +0 -36
  401. package/archive/examples-v1.6.11/nodeSpeedbackMatchmakingAlgorithm.js +0 -96
  402. package/archive/examples-v1.6.11/nodeTireData.js +0 -36
  403. package/archive/examples-v1.6.11/nodeTripleMap.js +0 -85
  404. package/archive/examples-v1.6.11/squaredOdds.ts +0 -16
  405. package/archive/examples-v1.6.11/transducerMaxBuyer.js +0 -67
  406. package/archive/examples-v1.6.11/transformLogTodosRange.js +0 -31
  407. package/archive/examples-v1.6.11/transformStreamRandomInts.js +0 -19
  408. package/archive/genericReduceConcurrent.js +0 -277
  409. package/archive/index.v0.2.9.js +0 -1685
  410. package/archive/objectValuesGenerator.js +0 -13
  411. package/archive/test.v0.2.9.js +0 -2334
  412. package/bench +0 -65
  413. package/benchmark-output/v1.9.7 +0 -268
  414. package/benchmarks/all.async.js +0 -43
  415. package/benchmarks/all.js +0 -43
  416. package/benchmarks/always.js +0 -15
  417. package/benchmarks/and.async.js +0 -25
  418. package/benchmarks/and.js +0 -25
  419. package/benchmarks/assign.async.js +0 -27
  420. package/benchmarks/assign.js +0 -27
  421. package/benchmarks/curry.js +0 -35
  422. package/benchmarks/eq.async.js +0 -23
  423. package/benchmarks/eq.js +0 -23
  424. package/benchmarks/every.async.js +0 -19
  425. package/benchmarks/every.js +0 -19
  426. package/benchmarks/filter.async.js +0 -32
  427. package/benchmarks/filter.js +0 -38
  428. package/benchmarks/flatMap.async.js +0 -26
  429. package/benchmarks/flatMap.js +0 -38
  430. package/benchmarks/get.async.js +0 -19
  431. package/benchmarks/get.js +0 -39
  432. package/benchmarks/gt.async.js +0 -23
  433. package/benchmarks/gt.js +0 -23
  434. package/benchmarks/gte.async.js +0 -23
  435. package/benchmarks/gte.js +0 -23
  436. package/benchmarks/lt.async.js +0 -23
  437. package/benchmarks/lt.js +0 -23
  438. package/benchmarks/lte.async.js +0 -23
  439. package/benchmarks/lte.js +0 -23
  440. package/benchmarks/map.async.js +0 -43
  441. package/benchmarks/map.js +0 -40
  442. package/benchmarks/misc/Promise.js +0 -26
  443. package/benchmarks/misc/isPromise.js +0 -30
  444. package/benchmarks/misc/promiseAll.js +0 -36
  445. package/benchmarks/not.js +0 -23
  446. package/benchmarks/omit.js +0 -38
  447. package/benchmarks/or.async.js +0 -25
  448. package/benchmarks/or.js +0 -25
  449. package/benchmarks/pick.js +0 -38
  450. package/benchmarks/pipe.async.js +0 -47
  451. package/benchmarks/pipe.js +0 -47
  452. package/benchmarks/reduce.async.js +0 -32
  453. package/benchmarks/reduce.js +0 -38
  454. package/benchmarks/set.async.js +0 -19
  455. package/benchmarks/set.js +0 -41
  456. package/benchmarks/some.async.js +0 -19
  457. package/benchmarks/some.js +0 -19
  458. package/benchmarks/switchCase.async.js +0 -27
  459. package/benchmarks/switchCase.js +0 -55
  460. package/benchmarks/tap.js +0 -15
  461. package/benchmarks/thunkify.js +0 -15
  462. package/benchmarks/transform.async.js +0 -27
  463. package/benchmarks/transform.js +0 -40
  464. package/benchmarks/tryCatch.async.js +0 -25
  465. package/benchmarks/tryCatch.js +0 -32
  466. package/build +0 -472
  467. package/dist-test.js +0 -37
  468. package/examples/type-to-search-wiki/README.md +0 -19
  469. package/examples/type-to-search-wiki/package.json +0 -13
  470. package/examples/type-to-search-wiki/src/app.js +0 -46
  471. package/examples/type-to-search-wiki/src/index.html +0 -18
  472. package/import-test.html +0 -73
  473. package/memory-usage/reduce.js +0 -40
  474. package/monad/AsyncPool.js +0 -0
  475. package/monad/BrokenPromise.js +0 -63
  476. package/monad/BrokenPromise.test.js +0 -22
  477. package/monad/Cancellable.js +0 -84
  478. package/monad/Cancellable.memoryUsage.js +0 -60
  479. package/monad/Cancellable.test.js +0 -20
  480. package/monad/Function.js +0 -0
  481. package/monad/Instance.benchmark.js +0 -378
  482. package/monad/Instance.js +0 -351
  483. package/monad/Instance.test.js +0 -445
  484. package/monad/Mux.benchmark.js +0 -29
  485. package/monad/Mux.js +0 -589
  486. package/monad/Mux.test.js +0 -512
  487. package/monad/PossiblePromise.benchmark.js +0 -87
  488. package/monad/PossiblePromise.js +0 -144
  489. package/monad/PossiblePromise.test.js +0 -89
  490. package/monad/README.md +0 -75
  491. package/monad/Reducer.js +0 -0
  492. package/monad/Sequence.benchmark.js +0 -42
  493. package/monad/Sequence.js +0 -36
  494. package/monad/SpecScript.js +0 -0
  495. package/monad/Stack.js +0 -0
  496. package/monad/Struct.benchmark.js +0 -154
  497. package/monad/Struct.js +0 -249
  498. package/monad/Struct.test.js +0 -237
  499. package/rubico.js +0 -66
  500. package/test.js +0 -4242
  501. package/tmp.js +0 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/prepend.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/size.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -59,12 +59,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
59
59
  return curry3ResolveArg2(baseFunc, arg0, arg1)
60
60
  }
61
61
 
62
- const tap = func => function tapping(...args) {
62
+ // argument resolver for curryArgs2
63
+ const curryArgs2ResolveArgs0 = (
64
+ baseFunc, arg1, arg2,
65
+ ) => function args0Resolver(...args) {
66
+ return baseFunc(args, arg1)
67
+ }
68
+
69
+ // argument resolver for curryArgs2
70
+ const curryArgs2ResolveArgs1 = (
71
+ baseFunc, arg0, arg2,
72
+ ) => function arg1Resolver(...args) {
73
+ return baseFunc(arg0, args)
74
+ }
75
+
76
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
77
+ if (arg0 == __) {
78
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
79
+ }
80
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
81
+ }
82
+
83
+ // _tap(args Array, func function) -> Promise|any
84
+ const _tap = function (args, func) {
63
85
  const result = args[0],
64
86
  call = func(...args)
65
87
  return isPromise(call) ? call.then(always(result)) : result
66
88
  }
67
89
 
90
+ const tap = function (...args) {
91
+ const func = args.pop()
92
+ if (args.length == 0) {
93
+ return curryArgs2(_tap, __, func)
94
+ }
95
+ return _tap(args, func)
96
+ }
97
+
68
98
  tap.if = (predicate, func) => function tappingIf(...args) {
69
99
  const predication = predicate(...args)
70
100
  if (isPromise(predication)) {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
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,funcConcat=(r,n)=>function(...o){const t=r(...o);return isPromise(t)?t.then(n):n(t)},always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,o)=>r?n():o(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},tap=r=>function(...n){const o=n[0],t=r(...n);return isPromise(t)?t.then(always(o)):o};tap.if=(r,n)=>function(...o){const t=r(...o);if(isPromise(t))return t.then((e=thunkConditional,u=__,c=thunkifyArgs(tap(n),o),s=always(o[0]),u==__?curry3ResolveArg0(e,c,s):c==__?curry3ResolveArg1(e,u,s):curry3ResolveArg2(e,u,c)));var e,u,c,s;if(t){const r=n(...o);if(isPromise(r))return r.then(always(o[0]))}return o[0]};const consoleLog=console.log,trace=function(...r){const n=r[0];return"function"==typeof n?tap((o=n,t=consoleLog,function(...r){const n=o(...r);return isPromise(n)?n.then(t):t(n)})):tap(consoleLog)(...r);var o,t};export default trace;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,n)=>function(...e){const o=r(...e);return isPromise(o)?o.then(n):n(o)},always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,e)=>function(o){return r(o,n,e)},curry3ResolveArg1=(r,n,e)=>function(o){return r(n,o,e)},curry3ResolveArg2=(r,n,e)=>function(o){return r(n,e,o)},curry3=function(r,n,e,o){return n==__?curry3ResolveArg0(r,e,o):e==__?curry3ResolveArg1(r,n,o):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},_tap=function(r,n){const e=r[0],o=n(...r);return isPromise(o)?o.then(always(e)):e},tap=function(...r){const n=r.pop();return 0==r.length?(e=_tap,t=n,(o=__)==__?curryArgs2ResolveArgs0(e,t):curryArgs2ResolveArgs1(e,o)):_tap(r,n);var e,o,t};tap.if=(r,n)=>function(...e){const o=r(...e);if(isPromise(o))return o.then((t=thunkConditional,s=__,u=thunkifyArgs(tap(n),e),c=always(e[0]),s==__?curry3ResolveArg0(t,u,c):u==__?curry3ResolveArg1(t,s,c):curry3ResolveArg2(t,s,u)));var t,s,u,c;if(o){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};const consoleLog=console.log,trace=function(...r){const n=r[0];return"function"==typeof n?tap((e=n,o=consoleLog,function(...r){const n=e(...r);return isPromise(n)?n.then(o):o(n)})):tap(consoleLog)(...r);var e,o};export default trace;
package/dist/x/trace.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -65,12 +65,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
65
65
  return curry3ResolveArg2(baseFunc, arg0, arg1)
66
66
  }
67
67
 
68
- const tap = func => function tapping(...args) {
68
+ // argument resolver for curryArgs2
69
+ const curryArgs2ResolveArgs0 = (
70
+ baseFunc, arg1, arg2,
71
+ ) => function args0Resolver(...args) {
72
+ return baseFunc(args, arg1)
73
+ }
74
+
75
+ // argument resolver for curryArgs2
76
+ const curryArgs2ResolveArgs1 = (
77
+ baseFunc, arg0, arg2,
78
+ ) => function arg1Resolver(...args) {
79
+ return baseFunc(arg0, args)
80
+ }
81
+
82
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
83
+ if (arg0 == __) {
84
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
85
+ }
86
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
87
+ }
88
+
89
+ // _tap(args Array, func function) -> Promise|any
90
+ const _tap = function (args, func) {
69
91
  const result = args[0],
70
92
  call = func(...args)
71
93
  return isPromise(call) ? call.then(always(result)) : result
72
94
  }
73
95
 
96
+ const tap = function (...args) {
97
+ const func = args.pop()
98
+ if (args.length == 0) {
99
+ return curryArgs2(_tap, __, func)
100
+ }
101
+ return _tap(args, func)
102
+ }
103
+
74
104
  tap.if = (predicate, func) => function tappingIf(...args) {
75
105
  const predication = predicate(...args)
76
106
  if (isPromise(predication)) {
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
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.trace=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},o=(n,t,o)=>n?t():o(),e=Symbol.for("placeholder"),r=o=>function(...e){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r};r.if=(u,c)=>function(...f){const i=u(...f);if(n(i))return i.then((s=o,l=e,h=((n,t)=>function(){return n(...t)})(r(c),f),p=t(f[0]),l==e?((n,t,o)=>function(e){return n(e,t,o)})(s,h,p):h==e?((n,t,o)=>function(e){return n(t,e,o)})(s,l,p):((n,t,o)=>function(e){return n(t,o,e)})(s,l,h)));var s,l,h,p;if(i){const o=c(...f);if(n(o))return o.then(t(f[0]))}return f[0]};const u=console.log;return function(...t){const o=t[0];return"function"==typeof o?r((e=o,c=u,function(...t){const o=e(...t);return n(o)?o.then(c):c(o)})):r(u)(...t);var e,c}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.trace=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},o=(n,t,o)=>n?t():o(),e=Symbol.for("placeholder"),r=function(o,e){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r},u=function(...n){const t=n.pop();return 0==n.length?(o=r,c=t,(u=e)==e?((n,t,o)=>function(...o){return n(o,t)})(o,c):((n,t,o)=>function(...o){return n(t,o)})(o,u)):r(n,t);var o,u,c};u.if=(r,c)=>function(...f){const i=r(...f);if(n(i))return i.then((s=o,l=e,h=((n,t)=>function(){return n(...t)})(u(c),f),p=t(f[0]),l==e?((n,t,o)=>function(e){return n(e,t,o)})(s,h,p):h==e?((n,t,o)=>function(e){return n(t,e,o)})(s,l,p):((n,t,o)=>function(e){return n(t,o,e)})(s,l,h)));var s,l,h,p;if(i){const o=c(...f);if(n(o))return o.then(t(f[0]))}return f[0]};const c=console.log;return function(...t){const o=t[0];return"function"==typeof o?u((e=o,r=c,function(...t){const o=e(...t);return n(o)?o.then(r):r(o)})):u(c)(...t);var e,r}}());
package/dist/x/trace.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -59,12 +59,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
59
59
  return curry3ResolveArg2(baseFunc, arg0, arg1)
60
60
  }
61
61
 
62
- const tap = func => function tapping(...args) {
62
+ // argument resolver for curryArgs2
63
+ const curryArgs2ResolveArgs0 = (
64
+ baseFunc, arg1, arg2,
65
+ ) => function args0Resolver(...args) {
66
+ return baseFunc(args, arg1)
67
+ }
68
+
69
+ // argument resolver for curryArgs2
70
+ const curryArgs2ResolveArgs1 = (
71
+ baseFunc, arg0, arg2,
72
+ ) => function arg1Resolver(...args) {
73
+ return baseFunc(arg0, args)
74
+ }
75
+
76
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
77
+ if (arg0 == __) {
78
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
79
+ }
80
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
81
+ }
82
+
83
+ // _tap(args Array, func function) -> Promise|any
84
+ const _tap = function (args, func) {
63
85
  const result = args[0],
64
86
  call = func(...args)
65
87
  return isPromise(call) ? call.then(always(result)) : result
66
88
  }
67
89
 
90
+ const tap = function (...args) {
91
+ const func = args.pop()
92
+ if (args.length == 0) {
93
+ return curryArgs2(_tap, __, func)
94
+ }
95
+ return _tap(args, func)
96
+ }
97
+
68
98
  tap.if = (predicate, func) => function tappingIf(...args) {
69
99
  const predication = predicate(...args)
70
100
  if (isPromise(predication)) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/uniq.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/unless.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/unless.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/values.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/values.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/when.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.0.1
2
+ * rubico v2.2.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -125,12 +125,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
125
125
  return curry3ResolveArg2(baseFunc, arg0, arg1)
126
126
  }
127
127
 
128
- const tap = func => function tapping(...args) {
128
+ // argument resolver for curryArgs2
129
+ const curryArgs2ResolveArgs0 = (
130
+ baseFunc, arg1, arg2,
131
+ ) => function args0Resolver(...args) {
132
+ return baseFunc(args, arg1)
133
+ }
134
+
135
+ // argument resolver for curryArgs2
136
+ const curryArgs2ResolveArgs1 = (
137
+ baseFunc, arg0, arg2,
138
+ ) => function arg1Resolver(...args) {
139
+ return baseFunc(arg0, args)
140
+ }
141
+
142
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
143
+ if (arg0 == __) {
144
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
145
+ }
146
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
147
+ }
148
+
149
+ // _tap(args Array, func function) -> Promise|any
150
+ const _tap = function (args, func) {
129
151
  const result = args[0],
130
152
  call = func(...args)
131
153
  return isPromise(call) ? call.then(always(result)) : result
132
154
  }
133
155
 
156
+ const tap = function (...args) {
157
+ const func = args.pop()
158
+ if (args.length == 0) {
159
+ return curryArgs2(_tap, __, func)
160
+ }
161
+ return _tap(args, func)
162
+ }
163
+
134
164
  tap.if = (predicate, func) => function tappingIf(...args) {
135
165
  const predication = predicate(...args)
136
166
  if (isPromise(predication)) {
@@ -148,27 +178,6 @@ tap.if = (predicate, func) => function tappingIf(...args) {
148
178
 
149
179
  const isArray = Array.isArray
150
180
 
151
- // argument resolver for curryArgs2
152
- const curryArgs2ResolveArgs0 = (
153
- baseFunc, arg1, arg2,
154
- ) => function args0Resolver(...args) {
155
- return baseFunc(args, arg1)
156
- }
157
-
158
- // argument resolver for curryArgs2
159
- const curryArgs2ResolveArgs1 = (
160
- baseFunc, arg0, arg2,
161
- ) => function arg1Resolver(...args) {
162
- return baseFunc(arg0, args)
163
- }
164
-
165
- const curryArgs2 = function (baseFunc, arg0, arg1) {
166
- if (arg0 == __) {
167
- return curryArgs2ResolveArgs0(baseFunc, arg1)
168
- }
169
- return curryArgs2ResolveArgs1(baseFunc, arg0)
170
- }
171
-
172
181
  const functionArrayAll = function (funcs, args) {
173
182
  const funcsLength = funcs.length,
174
183
  result = Array(funcsLength)
@@ -1447,43 +1456,45 @@ const callConcat = function (object, values) {
1447
1456
  return object.concat(values)
1448
1457
  }
1449
1458
 
1450
- const identityTransform = function (collection, transducer, result) {
1459
+ const identityTransform = function (collection, transducer, accum) {
1451
1460
  const nil = genericReduce(collection, transducer(noop), null)
1452
- return isPromise(nil) ? nil.then(always(result)) : result
1461
+ return isPromise(nil) ? nil.then(always(accum)) : accum
1453
1462
  }
1454
1463
 
1455
- const genericTransform = function (collection, transducer, result) {
1456
- if (isArray(result)) {
1457
- return genericReduce(collection, transducer(arrayExtend), result)
1464
+ const genericTransform = function (collection, transducer, accum) {
1465
+ if (isArray(accum)) {
1466
+ return genericReduce(collection, transducer(arrayExtend), accum)
1458
1467
  }
1459
- if (isBinary(result)) {
1468
+ if (isBinary(accum)) {
1460
1469
  const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
1461
1470
  return isPromise(intermediateArray)
1462
- ? intermediateArray.then(curry2(binaryExtend, result, __))
1463
- : binaryExtend(result, intermediateArray)
1471
+ ? intermediateArray.then(curry2(binaryExtend, accum, __))
1472
+ : binaryExtend(accum, intermediateArray)
1464
1473
  }
1465
- if (result == null) {
1466
- return identityTransform(collection, transducer, result)
1474
+ if (accum == null) {
1475
+ return identityTransform(collection, transducer, accum)
1467
1476
  }
1468
1477
 
1469
- const resultConstructor = result.constructor
1470
- if (typeof result == 'string' || resultConstructor == String) {
1471
- // TODO: use array + join over adding
1472
- return genericReduce(collection, transducer(add), result)
1478
+ const constructor = accum.constructor
1479
+ if (typeof accum == 'string' || constructor == String) {
1480
+ const result = genericReduce(collection, transducer(arrayExtend), [accum])
1481
+ return isPromise(result)
1482
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
1483
+ : result.join('')
1473
1484
  }
1474
- if (typeof result.concat == 'function') {
1475
- return genericReduce(collection, transducer(callConcat), result)
1485
+ if (typeof accum.concat == 'function') {
1486
+ return genericReduce(collection, transducer(callConcat), accum)
1476
1487
  }
1477
- if (typeof result.write == 'function') {
1478
- return genericReduce(collection, transducer(streamExtend), result)
1488
+ if (typeof accum.write == 'function') {
1489
+ return genericReduce(collection, transducer(streamExtend), accum)
1479
1490
  }
1480
- if (resultConstructor == Set) {
1481
- return genericReduce(collection, transducer(setExtend), result)
1491
+ if (constructor == Set) {
1492
+ return genericReduce(collection, transducer(setExtend), accum)
1482
1493
  }
1483
- if (resultConstructor == Object) {
1484
- return genericReduce(collection, transducer(objectAssign), result)
1494
+ if (constructor == Object) {
1495
+ return genericReduce(collection, transducer(objectAssign), accum)
1485
1496
  }
1486
- return identityTransform(collection, transducer, result)
1497
+ return identityTransform(collection, transducer, accum)
1487
1498
  }
1488
1499
 
1489
1500
  // _transform(collection any, transducer function, initialValue function|any) -> Promise