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
package/dist/rubico.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.
@@ -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/dist/set.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/set.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.
package/dist/set.min.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.
package/dist/set.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/some.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/some.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.
package/dist/some.min.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.
package/dist/some.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.
@@ -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/tap.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.
@@ -50,12 +50,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
50
50
  return curry3ResolveArg2(baseFunc, arg0, arg1)
51
51
  }
52
52
 
53
- const tap = func => function tapping(...args) {
53
+ // argument resolver for curryArgs2
54
+ const curryArgs2ResolveArgs0 = (
55
+ baseFunc, arg1, arg2,
56
+ ) => function args0Resolver(...args) {
57
+ return baseFunc(args, arg1)
58
+ }
59
+
60
+ // argument resolver for curryArgs2
61
+ const curryArgs2ResolveArgs1 = (
62
+ baseFunc, arg0, arg2,
63
+ ) => function arg1Resolver(...args) {
64
+ return baseFunc(arg0, args)
65
+ }
66
+
67
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
68
+ if (arg0 == __) {
69
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
70
+ }
71
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
72
+ }
73
+
74
+ // _tap(args Array, func function) -> Promise|any
75
+ const _tap = function (args, func) {
54
76
  const result = args[0],
55
77
  call = func(...args)
56
78
  return isPromise(call) ? call.then(always(result)) : result
57
79
  }
58
80
 
81
+ const tap = function (...args) {
82
+ const func = args.pop()
83
+ if (args.length == 0) {
84
+ return curryArgs2(_tap, __, func)
85
+ }
86
+ return _tap(args, func)
87
+ }
88
+
59
89
  tap.if = (predicate, func) => function tappingIf(...args) {
60
90
  const predication = predicate(...args)
61
91
  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,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(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,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(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):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],t=n(...r);return isPromise(t)?t.then(always(e)):e},tap=function(...r){const n=r.pop();return 0==r.length?(e=_tap,u=n,(t=__)==__?curryArgs2ResolveArgs0(e,u):curryArgs2ResolveArgs1(e,t)):_tap(r,n);var e,t,u};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((u=thunkConditional,o=__,s=thunkifyArgs(tap(n),e),c=always(e[0]),o==__?curry3ResolveArg0(u,s,c):s==__?curry3ResolveArg1(u,o,c):curry3ResolveArg2(u,o,s)));var u,o,s,c;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
package/dist/tap.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.
@@ -56,12 +56,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
56
56
  return curry3ResolveArg2(baseFunc, arg0, arg1)
57
57
  }
58
58
 
59
- const tap = func => function tapping(...args) {
59
+ // argument resolver for curryArgs2
60
+ const curryArgs2ResolveArgs0 = (
61
+ baseFunc, arg1, arg2,
62
+ ) => function args0Resolver(...args) {
63
+ return baseFunc(args, arg1)
64
+ }
65
+
66
+ // argument resolver for curryArgs2
67
+ const curryArgs2ResolveArgs1 = (
68
+ baseFunc, arg0, arg2,
69
+ ) => function arg1Resolver(...args) {
70
+ return baseFunc(arg0, args)
71
+ }
72
+
73
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
74
+ if (arg0 == __) {
75
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
76
+ }
77
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
78
+ }
79
+
80
+ // _tap(args Array, func function) -> Promise|any
81
+ const _tap = function (args, func) {
60
82
  const result = args[0],
61
83
  call = func(...args)
62
84
  return isPromise(call) ? call.then(always(result)) : result
63
85
  }
64
86
 
87
+ const tap = function (...args) {
88
+ const func = args.pop()
89
+ if (args.length == 0) {
90
+ return curryArgs2(_tap, __, func)
91
+ }
92
+ return _tap(args, func)
93
+ }
94
+
65
95
  tap.if = (predicate, func) => function tappingIf(...args) {
66
96
  const predication = predicate(...args)
67
97
  if (isPromise(predication)) {
package/dist/tap.min.js CHANGED
@@ -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.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.if=(u,f)=>function(...i){const c=u(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(r(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},r}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=function(e,o){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r},u=function(...n){const t=n.pop();return 0==n.length?(e=r,f=t,(u=o)==o?((n,t,e)=>function(...e){return n(e,t)})(e,f):((n,t,e)=>function(...e){return n(t,e)})(e,u)):r(n,t);var e,u,f};return u.if=(r,f)=>function(...i){const c=r(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(u(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},u}());
package/dist/tap.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.
@@ -50,12 +50,42 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
50
50
  return curry3ResolveArg2(baseFunc, arg0, arg1)
51
51
  }
52
52
 
53
- const tap = func => function tapping(...args) {
53
+ // argument resolver for curryArgs2
54
+ const curryArgs2ResolveArgs0 = (
55
+ baseFunc, arg1, arg2,
56
+ ) => function args0Resolver(...args) {
57
+ return baseFunc(args, arg1)
58
+ }
59
+
60
+ // argument resolver for curryArgs2
61
+ const curryArgs2ResolveArgs1 = (
62
+ baseFunc, arg0, arg2,
63
+ ) => function arg1Resolver(...args) {
64
+ return baseFunc(arg0, args)
65
+ }
66
+
67
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
68
+ if (arg0 == __) {
69
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
70
+ }
71
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
72
+ }
73
+
74
+ // _tap(args Array, func function) -> Promise|any
75
+ const _tap = function (args, func) {
54
76
  const result = args[0],
55
77
  call = func(...args)
56
78
  return isPromise(call) ? call.then(always(result)) : result
57
79
  }
58
80
 
81
+ const tap = function (...args) {
82
+ const func = args.pop()
83
+ if (args.length == 0) {
84
+ return curryArgs2(_tap, __, func)
85
+ }
86
+ return _tap(args, func)
87
+ }
88
+
59
89
  tap.if = (predicate, func) => function tappingIf(...args) {
60
90
  const predication = predicate(...args)
61
91
  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.
package/dist/thunkify.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/thunkify.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.
@@ -494,43 +494,45 @@ const callConcat = function (object, values) {
494
494
  return object.concat(values)
495
495
  }
496
496
 
497
- const identityTransform = function (collection, transducer, result) {
497
+ const identityTransform = function (collection, transducer, accum) {
498
498
  const nil = genericReduce(collection, transducer(noop), null)
499
- return isPromise(nil) ? nil.then(always(result)) : result
499
+ return isPromise(nil) ? nil.then(always(accum)) : accum
500
500
  }
501
501
 
502
- const genericTransform = function (collection, transducer, result) {
503
- if (isArray(result)) {
504
- return genericReduce(collection, transducer(arrayExtend), result)
502
+ const genericTransform = function (collection, transducer, accum) {
503
+ if (isArray(accum)) {
504
+ return genericReduce(collection, transducer(arrayExtend), accum)
505
505
  }
506
- if (isBinary(result)) {
506
+ if (isBinary(accum)) {
507
507
  const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
508
508
  return isPromise(intermediateArray)
509
- ? intermediateArray.then(curry2(binaryExtend, result, __))
510
- : binaryExtend(result, intermediateArray)
509
+ ? intermediateArray.then(curry2(binaryExtend, accum, __))
510
+ : binaryExtend(accum, intermediateArray)
511
511
  }
512
- if (result == null) {
513
- return identityTransform(collection, transducer, result)
512
+ if (accum == null) {
513
+ return identityTransform(collection, transducer, accum)
514
514
  }
515
515
 
516
- const resultConstructor = result.constructor
517
- if (typeof result == 'string' || resultConstructor == String) {
518
- // TODO: use array + join over adding
519
- return genericReduce(collection, transducer(add), result)
516
+ const constructor = accum.constructor
517
+ if (typeof accum == 'string' || constructor == String) {
518
+ const result = genericReduce(collection, transducer(arrayExtend), [accum])
519
+ return isPromise(result)
520
+ ? result.then(curry3(callPropUnary, __, 'join', ''))
521
+ : result.join('')
520
522
  }
521
- if (typeof result.concat == 'function') {
522
- return genericReduce(collection, transducer(callConcat), result)
523
+ if (typeof accum.concat == 'function') {
524
+ return genericReduce(collection, transducer(callConcat), accum)
523
525
  }
524
- if (typeof result.write == 'function') {
525
- return genericReduce(collection, transducer(streamExtend), result)
526
+ if (typeof accum.write == 'function') {
527
+ return genericReduce(collection, transducer(streamExtend), accum)
526
528
  }
527
- if (resultConstructor == Set) {
528
- return genericReduce(collection, transducer(setExtend), result)
529
+ if (constructor == Set) {
530
+ return genericReduce(collection, transducer(setExtend), accum)
529
531
  }
530
- if (resultConstructor == Object) {
531
- return genericReduce(collection, transducer(objectAssign), result)
532
+ if (constructor == Object) {
533
+ return genericReduce(collection, transducer(objectAssign), accum)
532
534
  }
533
- return identityTransform(collection, transducer, result)
535
+ return identityTransform(collection, transducer, accum)
534
536
  }
535
537
 
536
538
  // _transform(collection any, transducer function, initialValue function|any) -> Promise
@@ -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,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,s=e,a=__,f=t,y=c,(i=r)==__?curry5ResolveArg0(u,s,a,f,y):s==__?curry5ResolveArg1(u,i,a,f,y):a==__?curry5ResolveArg2(u,i,s,f,y):f==__?curry5ResolveArg3(u,i,s,a,y):curry5ResolveArg4(u,i,s,a,f)))}var u,i,s,a,f,y;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},objectAssign=Object.assign,_arrayExtend=function(r,e){const n=r.length,t=e.length;let o=-1;for(;++o<t;)r[n+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const n=r.length,t=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(n+e.length):new r.constructor(n+e.length);return t.set(r),t.set(e,n),t},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},thunkify1=(r,e)=>function(){return r(e)},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,n,t){return r.write(e,n,t),r},_streamExtendExecutor=(r,e)=>function(n,t){var o,c;e.on("data",__streamWrite(r)),e.on("end",(o=n,c=r,function(){return o(c)})),e.on("error",t)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return null!=(n=e)&&"function"==typeof n.pipe?_streamExtend(r,e):(r.write(e),r);var n},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const n of e)r.add(n);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,n){const t=genericReduce(r,e(noop),null);return isPromise(t)?t.then((o=n,function(){return o})):n;var o},genericTransform=function(r,e,n){if(isArray(n))return genericReduce(r,e(arrayExtend),n);if(isBinary(n)){const t=genericReduce(r,e(arrayExtend),[]);return isPromise(t)?t.then(curry2(binaryExtend,n,__)):binaryExtend(n,t)}if(null==n)return identityTransform(r,e,n);const t=n.constructor;return"string"==typeof n||t==String?genericReduce(r,e(add),n):"function"==typeof n.concat?genericReduce(r,e(callConcat),n):"function"==typeof n.write?genericReduce(r,e(streamExtend),n):t==Set?genericReduce(r,e(setExtend),n):t==Object?genericReduce(r,e(objectAssign),n):identityTransform(r,e,n)},_transform=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)}return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])};export default transform;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},isArray=Array.isArray,isBinary=ArrayBuffer.isView,callPropUnary=(r,e,n)=>r[e](n),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},always=r=>function(){return r},noop=function(){},add=(r,e)=>r+e,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},curry4ResolveArg0=(r,e,n,t)=>function(o){return r(o,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(o){return r(e,o,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(o){return r(e,n,o,t)},curry4ResolveArg3=(r,e,n,t)=>function(o){return r(e,n,t,o)},curry4=function(r,e,n,t,o){return e==__?curry4ResolveArg0(r,n,t,o):n==__?curry4ResolveArg1(r,e,t,o):t==__?curry4ResolveArg2(r,e,n,o):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const o=r.length;for(;++t<o;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let o=-1;for(void 0===n&&(n=r[++o]);++o<t;)if(n=e(n,r[o],o,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,o));return n},curry5ResolveArg0=(r,e,n,t,o)=>function(c){return r(c,e,n,t,o)},curry5ResolveArg1=(r,e,n,t,o)=>function(c){return r(e,c,n,t,o)},curry5ResolveArg2=(r,e,n,t,o)=>function(c){return r(e,n,c,t,o)},curry5ResolveArg3=(r,e,n,t,o)=>function(c){return r(e,n,t,c,o)},curry5ResolveArg4=(r,e,n,t,o)=>function(c){return r(e,n,t,o,c)},curry5=function(r,e,n,t,o,c){return e==__?curry5ResolveArg0(r,n,t,o,c):n==__?curry5ResolveArg1(r,e,t,o,c):t==__?curry5ResolveArg2(r,e,n,o,c):o==__?curry5ResolveArg3(r,e,n,t,c):curry5ResolveArg4(r,e,n,t,o)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,o){const c=t.length;for(;++o<c;){const c=t[o];n=e(n,r[c],c,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),o=t.length;let c=-1;for(void 0===n&&(n=r[t[++c]]);++c<o;){const o=t[c];if(n=e(n,r[o],o,r),isPromise(n))return n.then((u=objectReduceAsync,s=e,a=__,f=t,y=c,(i=r)==__?curry5ResolveArg0(u,s,a,f,y):s==__?curry5ResolveArg1(u,i,a,f,y):a==__?curry5ResolveArg2(u,i,s,f,y):f==__?curry5ResolveArg3(u,i,s,a,y):curry5ResolveArg4(u,i,s,a,f)))}var u,i,s,a,f,y;return n},mapReduceAsync=async function(r,e,n,t){for(const[o,c]of t)n=e(n,c,o,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[o,c]of t)if(n=e(n,c,o,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const o=r(n,t);return isPromise(o)?o.then(curry2(e,__,t)):e(o,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},objectAssign=Object.assign,_arrayExtend=function(r,e){const n=r.length,t=e.length;let o=-1;for(;++o<t;)r[n+o]=e[o];return r},arrayExtend=function(r,e){return isArray(e)||isBinary(e)?_arrayExtend(r,e):(r.push(e),r)},globalThisHasBuffer="function"==typeof Buffer,bufferAlloc=globalThisHasBuffer?Buffer.alloc:noop,_binaryExtend=function(r,e){const n=r.length,t=globalThisHasBuffer&&r.constructor==Buffer?bufferAlloc(n+e.length):new r.constructor(n+e.length);return t.set(r),t.set(e,n),t},binaryExtend=function(r,e){return isArray(e)||isBinary(e)?_binaryExtend(r,e):_binaryExtend(r,[e])},thunkify1=(r,e)=>function(){return r(e)},isNodeReadStream=r=>null!=r&&"function"==typeof r.pipe,__streamWrite=r=>function(e,n,t){return r.write(e,n,t),r},_streamExtendExecutor=(r,e)=>function(n,t){var o,c;e.on("data",__streamWrite(r)),e.on("end",(o=n,c=r,function(){return o(c)})),e.on("error",t)},_streamExtend=(r,e)=>new Promise(_streamExtendExecutor(r,e)),streamExtend=function(r,e){return null!=(n=e)&&"function"==typeof n.pipe?_streamExtend(r,e):(r.write(e),r);var n},setExtend=function(r,e){if(null!=e&&e.constructor==Set){for(const n of e)r.add(n);return r}return r.add(e)},callConcat=function(r,e){return r.concat(e)},identityTransform=function(r,e,n){const t=genericReduce(r,e(noop),null);return isPromise(t)?t.then((o=n,function(){return o})):n;var o},genericTransform=function(r,e,n){if(isArray(n))return genericReduce(r,e(arrayExtend),n);if(isBinary(n)){const t=genericReduce(r,e(arrayExtend),[]);return isPromise(t)?t.then(curry2(binaryExtend,n,__)):binaryExtend(n,t)}if(null==n)return identityTransform(r,e,n);const t=n.constructor;if("string"==typeof n||t==String){const t=genericReduce(r,e(arrayExtend),[n]);return isPromise(t)?t.then(curry3(callPropUnary,__,"join","")):t.join("")}return"function"==typeof n.concat?genericReduce(r,e(callConcat),n):"function"==typeof n.write?genericReduce(r,e(streamExtend),n):t==Set?genericReduce(r,e(setExtend),n):t==Object?genericReduce(r,e(objectAssign),n):identityTransform(r,e,n)},_transform=function(r,e,n){if("function"==typeof n){const t=n(r);return isPromise(t)?t.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,t)}return isPromise(n)?n.then(curry3(genericTransform,r,e,__)):genericTransform(r,e,n)},transform=function(...r){return"function"==typeof r[0]?curry3(_transform,__,r[0],r[1]):isPromise(r[0])?r[0].then(curry3(_transform,__,r[1],r[2])):_transform(r[0],r[1],r[2])};export default transform;