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