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/dist/get.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.
@@ -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.
package/dist/get.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.
package/dist/get.min.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.
package/dist/get.mjs 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.
package/dist/gt.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.
package/dist/gt.es.min.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.
package/dist/gt.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.
package/dist/gt.min.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.
package/dist/gt.mjs 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.
package/dist/gte.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.
@@ -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.
package/dist/gte.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.
package/dist/gte.min.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.
package/dist/gte.mjs 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.
package/dist/lt.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.
package/dist/lt.es.min.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.
package/dist/lt.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.
package/dist/lt.min.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.
package/dist/lt.mjs 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.
package/dist/lte.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.
@@ -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.
package/dist/lte.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.
package/dist/lte.min.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.
package/dist/lte.mjs 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.
package/dist/map.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.
@@ -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.
package/dist/map.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.
package/dist/map.min.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.
package/dist/map.mjs 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.
package/dist/not.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.
@@ -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.
package/dist/not.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.
package/dist/not.min.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.
package/dist/not.mjs 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.
package/dist/omit.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.
@@ -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.
package/dist/omit.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.
package/dist/omit.min.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.
package/dist/omit.mjs 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.
package/dist/or.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.
package/dist/or.es.min.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.
package/dist/or.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.
package/dist/or.min.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.
package/dist/or.mjs 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.
package/dist/pick.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.
@@ -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.
package/dist/pick.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.
package/dist/pick.min.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.
package/dist/pick.mjs 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.
package/dist/pipe.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.
@@ -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.
package/dist/pipe.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.
package/dist/pipe.min.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.
package/dist/pipe.mjs 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.
package/dist/reduce.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.
@@ -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.
package/dist/reduce.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.
@@ -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.
package/dist/reduce.mjs 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.
package/dist/rubico.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