rubico 1.9.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (587) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +3 -2
  3. package/.github/workflows/nodejs.yml +1 -1
  4. package/AggregateReducer.js +19 -0
  5. package/AggregateReducer.test.js +82 -0
  6. package/CHANGELOG.md +22 -1
  7. package/Transducer.js +75 -26
  8. package/Transducer.test.js +117 -0
  9. package/_internal/ComparisonOperator.js +68 -0
  10. package/_internal/File.js +41 -0
  11. package/_internal/FlatMappingAsyncIterator.js +4 -4
  12. package/_internal/FlatMappingIterator.js +1 -1
  13. package/_internal/TimeInLoopSuite.js +138 -0
  14. package/_internal/areAnyValuesPromises.js +23 -0
  15. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  16. package/_internal/arrayExtend.js +3 -2
  17. package/_internal/arrayFilter.js +3 -4
  18. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  19. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  20. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  21. package/_internal/curry4.test.js +25 -0
  22. package/_internal/curry5.test.js +29 -0
  23. package/_internal/curryArgs2.js +43 -0
  24. package/_internal/curryArgs3.test.js +21 -0
  25. package/_internal/curryArgs4.js +65 -0
  26. package/_internal/curryArgs4.test.js +25 -0
  27. package/_internal/equals.js +13 -0
  28. package/_internal/findAllFilePaths.js +22 -0
  29. package/_internal/funcApply.js +2 -0
  30. package/_internal/funcCall.js +14 -0
  31. package/_internal/functionArrayAll.js +26 -0
  32. package/_internal/functionArrayAllSeries.js +55 -0
  33. package/_internal/functionObjectAll.js +32 -0
  34. package/_internal/genericReduce.js +4 -22
  35. package/_internal/genericTransform.js +15 -15
  36. package/_internal/improvedGenericTransform.js +93 -0
  37. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  38. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  39. package/_internal/leftResolverRightResolverCompare.js +19 -0
  40. package/_internal/leftResolverRightValueCompare.js +16 -0
  41. package/_internal/leftValueRightResolverCompare.js +16 -0
  42. package/_internal/objectReduce.js +0 -1
  43. package/_internal/pathResolve.js +6 -0
  44. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  45. package/_internal/reducerFlatMap.js +4 -4
  46. package/_internal/reducerFlatten.js +1 -1
  47. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  48. package/_internal/timeInLoop.js +37 -0
  49. package/_internal/timeInLoop.test.js +18 -0
  50. package/_internal/timeInLoopAsync.js +35 -0
  51. package/_internal/timeInLoopAsync.test.js +22 -0
  52. package/all.js +106 -40
  53. package/and.js +54 -36
  54. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  55. package/archive/_Promise-2023-05-29.js +93 -0
  56. package/archive/arrayMap2-2023-05-29.js +73 -0
  57. package/archive/benchmarks-v1.9.7/all.js +34 -0
  58. package/archive/benchmarks-v1.9.7/and.js +24 -0
  59. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  60. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  61. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  62. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  63. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  64. package/archive/benchmarks-v1.9.7/get.js +44 -0
  65. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  66. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  67. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  69. package/archive/benchmarks-v1.9.7/map.js +892 -0
  70. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  71. package/archive/benchmarks-v1.9.7/or.js +51 -0
  72. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  73. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  74. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  75. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  76. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  77. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  78. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  79. package/assign.js +18 -8
  80. package/bench +65 -0
  81. package/benchmark-output/v1.9.7 +268 -0
  82. package/benchmarks/all.async.js +43 -0
  83. package/benchmarks/all.js +42 -33
  84. package/benchmarks/always.js +15 -0
  85. package/benchmarks/and.async.js +25 -0
  86. package/benchmarks/and.js +20 -19
  87. package/benchmarks/assign.async.js +27 -0
  88. package/benchmarks/assign.js +20 -167
  89. package/benchmarks/curry.js +34 -54
  90. package/benchmarks/eq.async.js +23 -0
  91. package/benchmarks/eq.js +17 -19
  92. package/benchmarks/every.async.js +19 -0
  93. package/benchmarks/every.js +19 -0
  94. package/benchmarks/filter.async.js +32 -0
  95. package/benchmarks/filter.js +27 -1311
  96. package/benchmarks/flatMap.async.js +26 -0
  97. package/benchmarks/flatMap.js +26 -36
  98. package/benchmarks/get.async.js +19 -0
  99. package/benchmarks/get.js +27 -32
  100. package/benchmarks/gt.async.js +23 -0
  101. package/benchmarks/gt.js +17 -19
  102. package/benchmarks/gte.async.js +23 -0
  103. package/benchmarks/gte.js +17 -19
  104. package/benchmarks/lt.async.js +23 -0
  105. package/benchmarks/lt.js +17 -19
  106. package/benchmarks/lte.async.js +23 -0
  107. package/benchmarks/lte.js +17 -19
  108. package/benchmarks/map.async.js +43 -0
  109. package/benchmarks/map.js +24 -876
  110. package/benchmarks/misc/Promise.js +26 -0
  111. package/benchmarks/misc/isPromise.js +30 -0
  112. package/benchmarks/misc/promiseAll.js +36 -0
  113. package/benchmarks/not.js +23 -0
  114. package/benchmarks/omit.js +30 -20
  115. package/benchmarks/or.async.js +25 -0
  116. package/benchmarks/or.js +23 -49
  117. package/benchmarks/pick.js +30 -16
  118. package/benchmarks/pipe.async.js +47 -0
  119. package/benchmarks/pipe.js +46 -151
  120. package/benchmarks/reduce.async.js +32 -0
  121. package/benchmarks/reduce.js +27 -728
  122. package/benchmarks/set.async.js +19 -0
  123. package/benchmarks/set.js +41 -0
  124. package/benchmarks/some.async.js +19 -0
  125. package/benchmarks/some.js +19 -0
  126. package/benchmarks/switchCase.async.js +27 -0
  127. package/benchmarks/switchCase.js +55 -256
  128. package/benchmarks/tap.js +10 -85
  129. package/benchmarks/thunkify.js +15 -0
  130. package/benchmarks/transform.async.js +27 -0
  131. package/benchmarks/transform.js +28 -206
  132. package/benchmarks/tryCatch.async.js +25 -0
  133. package/benchmarks/tryCatch.js +24 -100
  134. package/{distributor.js → build} +50 -50
  135. package/compose.js +46 -0
  136. package/dist/__.es.js +2 -2
  137. package/dist/__.es.min.js +2 -2
  138. package/dist/__.js +2 -2
  139. package/dist/__.min.js +2 -2
  140. package/dist/__.min.mjs +2 -2
  141. package/dist/__.mjs +2 -2
  142. package/dist/all.es.js +173 -92
  143. package/dist/all.es.min.js +3 -3
  144. package/dist/all.js +173 -92
  145. package/dist/all.min.js +3 -3
  146. package/dist/all.min.mjs +3 -3
  147. package/dist/all.mjs +173 -92
  148. package/dist/always.es.js +2 -2
  149. package/dist/always.es.min.js +2 -2
  150. package/dist/always.js +2 -2
  151. package/dist/always.min.js +2 -2
  152. package/dist/always.min.mjs +2 -2
  153. package/dist/always.mjs +2 -2
  154. package/dist/and.es.js +101 -32
  155. package/dist/and.es.min.js +3 -3
  156. package/dist/and.js +101 -32
  157. package/dist/and.min.js +3 -3
  158. package/dist/and.min.mjs +3 -3
  159. package/dist/and.mjs +101 -32
  160. package/dist/assign.es.js +37 -10
  161. package/dist/assign.es.min.js +3 -3
  162. package/dist/assign.js +37 -10
  163. package/dist/assign.min.js +3 -3
  164. package/dist/assign.min.mjs +3 -3
  165. package/dist/assign.mjs +37 -10
  166. package/dist/compose.es.js +71 -0
  167. package/dist/compose.es.min.js +7 -0
  168. package/dist/compose.js +78 -0
  169. package/dist/compose.min.js +8 -0
  170. package/dist/compose.min.mjs +7 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.min.mjs +2 -2
  177. package/dist/curry.mjs +2 -2
  178. package/dist/eq.es.js +172 -49
  179. package/dist/eq.es.min.js +3 -3
  180. package/dist/eq.js +172 -49
  181. package/dist/eq.min.js +3 -3
  182. package/dist/eq.min.mjs +3 -3
  183. package/dist/eq.mjs +172 -49
  184. package/dist/every.es.js +194 -0
  185. package/dist/every.es.min.js +7 -0
  186. package/dist/every.js +201 -0
  187. package/dist/every.min.js +8 -0
  188. package/dist/every.min.mjs +7 -0
  189. package/dist/every.mjs +194 -0
  190. package/dist/filter.es.js +14 -108
  191. package/dist/filter.es.min.js +3 -3
  192. package/dist/filter.js +14 -108
  193. package/dist/filter.min.js +3 -3
  194. package/dist/filter.min.mjs +3 -3
  195. package/dist/filter.mjs +14 -108
  196. package/dist/flatMap.es.js +27 -214
  197. package/dist/flatMap.es.min.js +3 -3
  198. package/dist/flatMap.js +27 -214
  199. package/dist/flatMap.min.js +3 -3
  200. package/dist/flatMap.min.mjs +3 -3
  201. package/dist/flatMap.mjs +27 -214
  202. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  203. package/dist/forEach.es.min.js +7 -0
  204. package/dist/{x/forEach.js → forEach.js} +52 -70
  205. package/dist/forEach.min.js +8 -0
  206. package/dist/forEach.min.mjs +7 -0
  207. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  208. package/dist/get.es.js +60 -5
  209. package/dist/get.es.min.js +3 -3
  210. package/dist/get.js +60 -5
  211. package/dist/get.min.js +3 -3
  212. package/dist/get.min.mjs +3 -3
  213. package/dist/get.mjs +60 -5
  214. package/dist/gt.es.js +171 -48
  215. package/dist/gt.es.min.js +3 -3
  216. package/dist/gt.js +171 -48
  217. package/dist/gt.min.js +3 -3
  218. package/dist/gt.min.mjs +3 -3
  219. package/dist/gt.mjs +171 -48
  220. package/dist/gte.es.js +171 -48
  221. package/dist/gte.es.min.js +3 -3
  222. package/dist/gte.js +171 -48
  223. package/dist/gte.min.js +3 -3
  224. package/dist/gte.min.mjs +3 -3
  225. package/dist/gte.mjs +171 -48
  226. package/dist/lt.es.js +171 -48
  227. package/dist/lt.es.min.js +3 -3
  228. package/dist/lt.js +171 -48
  229. package/dist/lt.min.js +3 -3
  230. package/dist/lt.min.mjs +3 -3
  231. package/dist/lt.mjs +171 -48
  232. package/dist/lte.es.js +171 -48
  233. package/dist/lte.es.min.js +3 -3
  234. package/dist/lte.js +171 -48
  235. package/dist/lte.min.js +3 -3
  236. package/dist/lte.min.mjs +3 -3
  237. package/dist/lte.mjs +171 -48
  238. package/dist/map.es.js +12 -101
  239. package/dist/map.es.min.js +3 -3
  240. package/dist/map.js +12 -101
  241. package/dist/map.min.js +3 -3
  242. package/dist/map.min.mjs +3 -3
  243. package/dist/map.mjs +12 -101
  244. package/dist/not.es.js +75 -14
  245. package/dist/not.es.min.js +3 -3
  246. package/dist/not.js +75 -14
  247. package/dist/not.min.js +3 -3
  248. package/dist/not.min.mjs +3 -3
  249. package/dist/not.mjs +75 -14
  250. package/dist/omit.es.js +7 -2
  251. package/dist/omit.es.min.js +3 -3
  252. package/dist/omit.js +7 -2
  253. package/dist/omit.min.js +3 -3
  254. package/dist/omit.min.mjs +3 -3
  255. package/dist/omit.mjs +7 -2
  256. package/dist/or.es.js +99 -31
  257. package/dist/or.es.min.js +3 -3
  258. package/dist/or.js +99 -31
  259. package/dist/or.min.js +3 -3
  260. package/dist/or.min.mjs +3 -3
  261. package/dist/or.mjs +99 -31
  262. package/dist/pick.es.js +8 -3
  263. package/dist/pick.es.min.js +3 -3
  264. package/dist/pick.js +8 -3
  265. package/dist/pick.min.js +3 -3
  266. package/dist/pick.min.mjs +3 -3
  267. package/dist/pick.mjs +8 -3
  268. package/dist/pipe.es.js +42 -46
  269. package/dist/pipe.es.min.js +3 -3
  270. package/dist/pipe.js +42 -46
  271. package/dist/pipe.min.js +3 -3
  272. package/dist/pipe.min.mjs +3 -3
  273. package/dist/pipe.mjs +42 -46
  274. package/dist/reduce.es.js +52 -94
  275. package/dist/reduce.es.min.js +3 -3
  276. package/dist/reduce.js +52 -94
  277. package/dist/reduce.min.js +3 -3
  278. package/dist/reduce.min.mjs +3 -3
  279. package/dist/reduce.mjs +52 -94
  280. package/dist/rubico.es.js +730 -869
  281. package/dist/rubico.es.min.js +3 -3
  282. package/dist/rubico.js +730 -869
  283. package/dist/rubico.min.js +3 -3
  284. package/dist/rubico.min.mjs +3 -3
  285. package/dist/rubico.mjs +730 -869
  286. package/dist/set.es.js +18 -3
  287. package/dist/set.es.min.js +3 -3
  288. package/dist/set.js +18 -3
  289. package/dist/set.min.js +3 -3
  290. package/dist/set.min.mjs +3 -3
  291. package/dist/set.mjs +18 -3
  292. package/dist/{any.js → some.es.js} +64 -54
  293. package/dist/some.es.min.js +7 -0
  294. package/dist/{any.mjs → some.js} +72 -48
  295. package/dist/some.min.js +8 -0
  296. package/dist/some.min.mjs +7 -0
  297. package/dist/{any.es.js → some.mjs} +65 -48
  298. package/dist/switchCase.es.js +55 -5
  299. package/dist/switchCase.es.min.js +3 -3
  300. package/dist/switchCase.js +55 -5
  301. package/dist/switchCase.min.js +3 -3
  302. package/dist/switchCase.min.mjs +3 -3
  303. package/dist/switchCase.mjs +55 -5
  304. package/dist/tap.es.js +2 -9
  305. package/dist/tap.es.min.js +3 -3
  306. package/dist/tap.js +2 -9
  307. package/dist/tap.min.js +3 -3
  308. package/dist/tap.min.mjs +3 -3
  309. package/dist/tap.mjs +2 -9
  310. package/dist/thunkify.es.js +45 -2
  311. package/dist/thunkify.es.min.js +3 -3
  312. package/dist/thunkify.js +45 -2
  313. package/dist/thunkify.min.js +3 -3
  314. package/dist/thunkify.min.mjs +3 -3
  315. package/dist/thunkify.mjs +45 -2
  316. package/dist/transform.es.js +35 -71
  317. package/dist/transform.es.min.js +3 -3
  318. package/dist/transform.js +35 -71
  319. package/dist/transform.min.js +3 -3
  320. package/dist/transform.min.mjs +3 -3
  321. package/dist/transform.mjs +35 -71
  322. package/dist/tryCatch.es.js +33 -17
  323. package/dist/tryCatch.es.min.js +3 -3
  324. package/dist/tryCatch.js +33 -17
  325. package/dist/tryCatch.min.js +3 -3
  326. package/dist/tryCatch.min.mjs +3 -3
  327. package/dist/tryCatch.mjs +33 -17
  328. package/dist/x/append.es.js +2 -2
  329. package/dist/x/append.es.min.js +2 -2
  330. package/dist/x/append.js +2 -2
  331. package/dist/x/append.min.js +2 -2
  332. package/dist/x/append.min.mjs +2 -2
  333. package/dist/x/append.mjs +2 -2
  334. package/dist/x/callProp.es.js +2 -2
  335. package/dist/x/callProp.es.min.js +2 -2
  336. package/dist/x/callProp.js +2 -2
  337. package/dist/x/callProp.min.js +2 -2
  338. package/dist/x/callProp.min.mjs +2 -2
  339. package/dist/x/callProp.mjs +2 -2
  340. package/dist/x/defaultsDeep.es.js +2 -2
  341. package/dist/x/defaultsDeep.es.min.js +2 -2
  342. package/dist/x/defaultsDeep.js +2 -2
  343. package/dist/x/defaultsDeep.min.js +2 -2
  344. package/dist/x/defaultsDeep.min.mjs +2 -2
  345. package/dist/x/defaultsDeep.mjs +2 -2
  346. package/dist/x/differenceWith.es.js +7 -7
  347. package/dist/x/differenceWith.es.min.js +3 -3
  348. package/dist/x/differenceWith.js +7 -7
  349. package/dist/x/differenceWith.min.js +2 -2
  350. package/dist/x/differenceWith.min.mjs +3 -3
  351. package/dist/x/differenceWith.mjs +7 -7
  352. package/dist/x/filterOut.es.js +60 -117
  353. package/dist/x/filterOut.es.min.js +3 -3
  354. package/dist/x/filterOut.js +60 -117
  355. package/dist/x/filterOut.min.js +3 -3
  356. package/dist/x/filterOut.min.mjs +3 -3
  357. package/dist/x/filterOut.mjs +60 -117
  358. package/dist/x/find.es.js +2 -2
  359. package/dist/x/find.es.min.js +2 -2
  360. package/dist/x/find.js +2 -2
  361. package/dist/x/find.min.js +2 -2
  362. package/dist/x/find.min.mjs +2 -2
  363. package/dist/x/find.mjs +2 -2
  364. package/dist/x/findIndex.es.js +2 -2
  365. package/dist/x/findIndex.es.min.js +2 -2
  366. package/dist/x/findIndex.js +2 -2
  367. package/dist/x/findIndex.min.js +2 -2
  368. package/dist/x/findIndex.min.mjs +2 -2
  369. package/dist/x/findIndex.mjs +2 -2
  370. package/dist/x/first.es.js +2 -2
  371. package/dist/x/first.es.min.js +2 -2
  372. package/dist/x/first.js +2 -2
  373. package/dist/x/first.min.js +2 -2
  374. package/dist/x/first.min.mjs +2 -2
  375. package/dist/x/first.mjs +2 -2
  376. package/dist/x/flatten.es.js +20 -207
  377. package/dist/x/flatten.es.min.js +3 -3
  378. package/dist/x/flatten.js +20 -207
  379. package/dist/x/flatten.min.js +3 -3
  380. package/dist/x/flatten.min.mjs +3 -3
  381. package/dist/x/flatten.mjs +20 -207
  382. package/dist/x/groupBy.es.js +52 -94
  383. package/dist/x/groupBy.es.min.js +3 -3
  384. package/dist/x/groupBy.js +52 -94
  385. package/dist/x/groupBy.min.js +3 -3
  386. package/dist/x/groupBy.min.mjs +3 -3
  387. package/dist/x/groupBy.mjs +52 -94
  388. package/dist/x/has.es.js +2 -2
  389. package/dist/x/has.es.min.js +2 -2
  390. package/dist/x/has.js +2 -2
  391. package/dist/x/has.min.js +2 -2
  392. package/dist/x/has.min.mjs +2 -2
  393. package/dist/x/has.mjs +2 -2
  394. package/dist/x/identity.es.js +2 -2
  395. package/dist/x/identity.es.min.js +2 -2
  396. package/dist/x/identity.js +2 -2
  397. package/dist/x/identity.min.js +2 -2
  398. package/dist/x/identity.min.mjs +2 -2
  399. package/dist/x/identity.mjs +2 -2
  400. package/dist/x/includes.es.js +2 -2
  401. package/dist/x/includes.es.min.js +2 -2
  402. package/dist/x/includes.js +2 -2
  403. package/dist/x/includes.min.js +2 -2
  404. package/dist/x/includes.min.mjs +2 -2
  405. package/dist/x/includes.mjs +2 -2
  406. package/dist/x/isDeepEqual.es.js +2 -2
  407. package/dist/x/isDeepEqual.es.min.js +2 -2
  408. package/dist/x/isDeepEqual.js +2 -2
  409. package/dist/x/isDeepEqual.min.js +2 -2
  410. package/dist/x/isDeepEqual.min.mjs +2 -2
  411. package/dist/x/isDeepEqual.mjs +2 -2
  412. package/dist/x/isEmpty.es.js +2 -2
  413. package/dist/x/isEmpty.es.min.js +2 -2
  414. package/dist/x/isEmpty.js +2 -2
  415. package/dist/x/isEmpty.min.js +2 -2
  416. package/dist/x/isEmpty.min.mjs +2 -2
  417. package/dist/x/isEmpty.mjs +2 -2
  418. package/dist/x/isEqual.es.js +2 -2
  419. package/dist/x/isEqual.es.min.js +2 -2
  420. package/dist/x/isEqual.js +2 -2
  421. package/dist/x/isEqual.min.js +2 -2
  422. package/dist/x/isEqual.min.mjs +2 -2
  423. package/dist/x/isEqual.mjs +2 -2
  424. package/dist/x/isFunction.es.js +2 -2
  425. package/dist/x/isFunction.es.min.js +2 -2
  426. package/dist/x/isFunction.js +2 -2
  427. package/dist/x/isFunction.min.js +2 -2
  428. package/dist/x/isFunction.min.mjs +2 -2
  429. package/dist/x/isFunction.mjs +2 -2
  430. package/dist/x/isIn.es.js +2 -2
  431. package/dist/x/isIn.es.min.js +2 -2
  432. package/dist/x/isIn.js +2 -2
  433. package/dist/x/isIn.min.js +2 -2
  434. package/dist/x/isIn.min.mjs +2 -2
  435. package/dist/x/isIn.mjs +2 -2
  436. package/dist/x/isObject.es.js +2 -2
  437. package/dist/x/isObject.es.min.js +2 -2
  438. package/dist/x/isObject.js +2 -2
  439. package/dist/x/isObject.min.js +2 -2
  440. package/dist/x/isObject.min.mjs +2 -2
  441. package/dist/x/isObject.mjs +2 -2
  442. package/dist/x/isString.es.js +2 -2
  443. package/dist/x/isString.es.min.js +2 -2
  444. package/dist/x/isString.js +2 -2
  445. package/dist/x/isString.min.js +2 -2
  446. package/dist/x/isString.min.mjs +2 -2
  447. package/dist/x/isString.mjs +2 -2
  448. package/dist/x/keys.es.js +2 -2
  449. package/dist/x/keys.es.min.js +2 -2
  450. package/dist/x/keys.js +2 -2
  451. package/dist/x/keys.min.js +2 -2
  452. package/dist/x/keys.min.mjs +2 -2
  453. package/dist/x/keys.mjs +2 -2
  454. package/dist/x/last.es.js +2 -2
  455. package/dist/x/last.es.min.js +2 -2
  456. package/dist/x/last.js +2 -2
  457. package/dist/x/last.min.js +2 -2
  458. package/dist/x/last.min.mjs +2 -2
  459. package/dist/x/last.mjs +2 -2
  460. package/dist/x/maxBy.es.js +59 -6
  461. package/dist/x/maxBy.es.min.js +3 -3
  462. package/dist/x/maxBy.js +59 -6
  463. package/dist/x/maxBy.min.js +3 -3
  464. package/dist/x/maxBy.min.mjs +3 -3
  465. package/dist/x/maxBy.mjs +59 -6
  466. package/dist/x/noop.es.js +2 -2
  467. package/dist/x/noop.es.min.js +2 -2
  468. package/dist/x/noop.js +2 -2
  469. package/dist/x/noop.min.js +2 -2
  470. package/dist/x/noop.min.mjs +2 -2
  471. package/dist/x/noop.mjs +2 -2
  472. package/dist/x/pluck.es.js +32 -103
  473. package/dist/x/pluck.es.min.js +3 -3
  474. package/dist/x/pluck.js +32 -103
  475. package/dist/x/pluck.min.js +3 -3
  476. package/dist/x/pluck.min.mjs +3 -3
  477. package/dist/x/pluck.mjs +32 -103
  478. package/dist/x/prepend.es.js +2 -2
  479. package/dist/x/prepend.es.min.js +2 -2
  480. package/dist/x/prepend.js +2 -2
  481. package/dist/x/prepend.min.js +2 -2
  482. package/dist/x/prepend.min.mjs +2 -2
  483. package/dist/x/prepend.mjs +2 -2
  484. package/dist/x/size.es.js +2 -2
  485. package/dist/x/size.es.min.js +2 -2
  486. package/dist/x/size.js +2 -2
  487. package/dist/x/size.min.js +2 -2
  488. package/dist/x/size.min.mjs +2 -2
  489. package/dist/x/size.mjs +2 -2
  490. package/dist/x/trace.es.js +2 -9
  491. package/dist/x/trace.es.min.js +3 -3
  492. package/dist/x/trace.js +2 -9
  493. package/dist/x/trace.min.js +3 -3
  494. package/dist/x/trace.min.mjs +3 -3
  495. package/dist/x/trace.mjs +2 -9
  496. package/dist/x/unionWith.es.js +2 -2
  497. package/dist/x/unionWith.es.min.js +2 -2
  498. package/dist/x/unionWith.js +2 -2
  499. package/dist/x/unionWith.min.js +2 -2
  500. package/dist/x/unionWith.min.mjs +2 -2
  501. package/dist/x/unionWith.mjs +2 -2
  502. package/dist/x/uniq.es.js +2 -2
  503. package/dist/x/uniq.es.min.js +2 -2
  504. package/dist/x/uniq.js +2 -2
  505. package/dist/x/uniq.min.js +2 -2
  506. package/dist/x/uniq.min.mjs +2 -2
  507. package/dist/x/uniq.mjs +2 -2
  508. package/dist/x/unless.es.js +2 -2
  509. package/dist/x/unless.es.min.js +2 -2
  510. package/dist/x/unless.js +2 -2
  511. package/dist/x/unless.min.js +2 -2
  512. package/dist/x/unless.min.mjs +2 -2
  513. package/dist/x/unless.mjs +2 -2
  514. package/dist/x/values.es.js +2 -2
  515. package/dist/x/values.es.min.js +2 -2
  516. package/dist/x/values.js +2 -2
  517. package/dist/x/values.min.js +2 -2
  518. package/dist/x/values.min.mjs +2 -2
  519. package/dist/x/values.mjs +2 -2
  520. package/dist/x/when.es.js +2 -2
  521. package/dist/x/when.es.min.js +2 -2
  522. package/dist/x/when.js +2 -2
  523. package/dist/x/when.min.js +2 -2
  524. package/dist/x/when.min.mjs +2 -2
  525. package/dist/x/when.mjs +2 -2
  526. package/dist-test.js +9 -2042
  527. package/eq.js +21 -63
  528. package/es.js +730 -869
  529. package/every.js +94 -0
  530. package/filter.js +23 -91
  531. package/flatMap.js +75 -70
  532. package/forEach.js +82 -0
  533. package/get.js +23 -6
  534. package/global.js +6 -4
  535. package/gt.js +15 -58
  536. package/gte.js +14 -57
  537. package/index.js +730 -869
  538. package/lt.js +17 -60
  539. package/lte.js +14 -57
  540. package/map.js +9 -94
  541. package/memory-usage/reduce.js +2 -2
  542. package/not.js +27 -45
  543. package/omit.js +4 -0
  544. package/or.js +50 -33
  545. package/package.json +7 -7
  546. package/pick.js +5 -1
  547. package/pipe.js +13 -50
  548. package/reduce.js +42 -51
  549. package/rubico.js +10 -8
  550. package/set.js +43 -10
  551. package/some.js +105 -0
  552. package/switchCase.js +13 -3
  553. package/tap.js +0 -24
  554. package/test.js +847 -1096
  555. package/thunkify.js +9 -0
  556. package/transform.js +31 -16
  557. package/tryCatch.js +19 -15
  558. package/x/differenceWith.js +3 -3
  559. package/x/filterOut.test.js +6 -6
  560. package/x/flatten.js +1 -1
  561. package/x/flatten.test.js +0 -8
  562. package/x/index.js +0 -2
  563. package/x/pluck.js +18 -27
  564. package/x/pluck.test.js +3 -7
  565. package/x/timeInLoop.js +16 -25
  566. package/x/timeInLoop.test.js +8 -4
  567. package/any.js +0 -82
  568. package/dist/any.es.min.js +0 -7
  569. package/dist/any.min.js +0 -8
  570. package/dist/any.min.mjs +0 -7
  571. package/dist/fork.es.js +0 -159
  572. package/dist/fork.es.min.js +0 -7
  573. package/dist/fork.js +0 -166
  574. package/dist/fork.min.js +0 -8
  575. package/dist/fork.min.mjs +0 -7
  576. package/dist/fork.mjs +0 -159
  577. package/dist/x/forEach.es.min.js +0 -7
  578. package/dist/x/forEach.min.js +0 -8
  579. package/dist/x/forEach.min.mjs +0 -7
  580. package/fork.js +0 -101
  581. package/x/forEach.js +0 -93
  582. package/x/forEach.test.js +0 -218
  583. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  584. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  586. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -1,218 +1,40 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('rubico')
3
1
  const R = require('ramda')
4
- const _ = require('lodash')
5
- const _fp = require('lodash/fp')
6
- const { Readable, Writable } = require('stream')
2
+ const Transducer = require('../Transducer')
3
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
4
+ const transform = require('../transform')
7
5
 
8
- const isPromise = value => value != null && typeof value.then == 'function'
6
+ const ramdaInto = R.into
7
+ const ramdaMap = R.map
9
8
 
10
- const {
11
- pipe, fork, assign,
12
- tap, tryCatch, switchCase,
13
- map, filter, reduce, transform, flatMap,
14
- any, all, and, or, not,
15
- eq, gt, lt, gte, lte,
16
- get, pick, omit,
17
- } = rubico
9
+ const suite = new TimeInLoopSuite()
18
10
 
19
- const square = number => number ** 2
11
+ suite.add('rubico transform array -> array', () => {
12
+ transform([1, 2, 3, 4, 5], Transducer.map(number => number ** 2), [])
13
+ })
20
14
 
21
- const isOdd = number => number % 2 == 1
15
+ suite.add('rubico transform array -> array tacit', () => {
16
+ transform(Transducer.map(number => number ** 2), [])([1, 2, 3, 4, 5])
17
+ })
22
18
 
23
- const squaredOdds = pipe([
24
- filter(isOdd),
25
- map(square),
26
- ])
19
+ suite.add('rubico transform array -> string', () => {
20
+ transform([1, 2, 3, 4, 5], Transducer.map(number => number ** 2), '')
21
+ })
27
22
 
28
- const squaredOddsArrayConcat = transform(
29
- squaredOdds, [],
30
- )
23
+ suite.add('rubico transform array -> string tacit', () => {
24
+ transform(Transducer.map(number => number ** 2), '')([1, 2, 3, 4, 5])
25
+ })
31
26
 
32
- /**
33
- * @name squaredOddsArrayConcat
34
- *
35
- * @benchmark
36
- * squaredOddsArrayConcat: 1e+5: 85.147ms
37
- *
38
- * @note Bo5
39
- */
27
+ suite.add('ramda into array -> array', () => {
28
+ ramdaInto([], ramdaMap(number => number ** 2), [1, 2, 3, 4, 5])
29
+ })
40
30
 
41
- {
42
- const numbers = [1, 2, 3, 4, 5]
31
+ suite.add('ramda into array -> string', () => {
32
+ ramdaInto('', ramdaMap(number => number ** 2), [1, 2, 3, 4, 5])
33
+ })
43
34
 
44
- const arrayEmpty = () => []
45
-
46
- const squaredOddsArrayConcat = transform(squaredOdds, arrayEmpty)
47
-
48
- // timeInLoop('squaredOddsArrayConcat', 1e5, () => squaredOddsArrayConcat(numbers))
49
- }
50
-
51
- /**
52
- * @name squaredOddsStringAdd
53
- *
54
- * @benchmark
55
- * squaredOddsStringAdd: 1e+5: 176.517ms
56
- *
57
- * @note Bo5
58
- */
59
-
60
- {
61
- const numbers = [1, 2, 3, 4, 5]
62
-
63
- const squaredOddsStringAdd = transform(squaredOdds, '')
64
-
65
- // console.log(squaredOddsStringAdd(numbers))
66
-
67
- // timeInLoop('squaredOddsStringAdd', 1e5, () => squaredOddsStringAdd(numbers))
68
- }
69
-
70
- /**
71
- * @name squaredOddsSetAdd
72
- *
73
- * @benchmark
74
- * squaredOddsSetAdd: 1e+5: 93.28ms
75
- *
76
- * @note Bo5
77
- */
78
-
79
- {
80
- const numbers = [1, 2, 3, 4, 5]
81
-
82
- const setEmpty = () => new Set()
83
-
84
- const squaredOddsSetAdd = transform(squaredOdds, setEmpty)
85
-
86
- // console.log(squaredOddsSetAdd(numbers))
87
-
88
- // timeInLoop('squaredOddsSetAdd', 1e5, () => squaredOddsSetAdd(numbers))
89
- }
90
-
91
- /**
92
- * @name squaredOddsUint8ArrayConcat
93
- *
94
- * @benchmark
95
- * squaredOddsUint8ArrayConcat: 1e+5: 237.538ms
96
- *
97
- * @note Bo5
98
- */
99
-
100
- {
101
- const numbers = [1, 2, 3, 4, 5]
102
-
103
- const setEmpty = () => new Set()
104
-
105
- const uint8ArrayEmpty = () => new Uint8Array(0)
106
-
107
- const squaredOddsUint8ArrayConcat = transform(squaredOdds, uint8ArrayEmpty)
108
-
109
- // console.log(squaredOddsUint8ArrayConcat(numbers))
110
-
111
- // timeInLoop('squaredOddsUint8ArrayConcat', 1e5, () => squaredOddsUint8ArrayConcat(numbers))
112
- }
113
-
114
- const MockWritable = function (values) {
115
- Writable.call(this)
116
- this.array = [...values]
117
- this.handlers = new Map()
118
- }
119
-
120
- MockWritable.prototype.write = function (chunk, encoding, callback) {
121
- this.array.push(chunk)
122
- }
123
-
124
- MockWritable.prototype.on = function (eventName, handler) {
125
- if (this.handlers.has(eventName)) {
126
- this.handlers.get(eventName).push(handler)
127
- } else {
128
- this.handlers.set(eventName, [handler])
129
- }
130
- }
131
-
132
- MockWritable.prototype.once = function (eventName, handler) {
133
- this.handlers.set(eventName, [handler])
134
- }
135
-
136
- MockWritable.prototype.emit = function (eventName, ...args) {
137
- if (!this.handlers.has(eventName)) {
138
- return undefined
139
- }
140
- return this.handlers.get(eventName).map(handler => handler(...args))
141
- }
142
-
143
- /**
144
- * @name squaredOddsStreamConcat
145
- *
146
- * @benchmark
147
- *
148
- * @note Bo5
149
- * squaredOddsStreamConcat: 1e+5: 90.274ms
150
- */
151
-
152
- {
153
- const numbers = [1, 2, 3, 4, 5]
154
-
155
- const setEmpty = () => new Set()
156
-
157
- const uint8ArrayEmpty = () => new Uint8Array(0)
158
-
159
- const square = number => number ** 2
160
-
161
- const squaredOddsStreamConcat = transform(squaredOdds, new MockWritable([]))
162
-
163
- // console.log(squaredOddsStreamConcat(numbers))
164
-
165
- // timeInLoop('squaredOddsStreamConcat', 1e5, () => squaredOddsStreamConcat(numbers))
166
- }
167
-
168
- /**
169
- * @name squaredOddsObjectAssign
170
- *
171
- * @benchmark
172
- * squaredOddsObjectAssign: 1e+5: 96.854ms
173
- *
174
- * @note Bo5
175
- */
176
-
177
- {
178
- const numbers = [1, 2, 3, 4, 5]
179
-
180
- const setEmpty = () => new Set()
181
-
182
- const uint8ArrayEmpty = () => new Uint8Array(0)
183
-
184
- const square = number => number ** 2
185
-
186
- const objectEmpty = () => ({})
187
-
188
- const squaredOddsObjectAssign = transform(squaredOdds, objectEmpty)
189
-
190
- // console.log(squaredOddsObjectAssign(numbers))
191
-
192
- // timeInLoop('squaredOddsObjectAssign', 1e5, () => squaredOddsObjectAssign(numbers))
35
+ if (process.argv[1] == __filename) {
36
+ suite.on('caseBestRun', run => console.log(run.output))
37
+ suite.run()
193
38
  }
194
39
 
195
- /**
196
- * @name squaredOddsNullTransform
197
- *
198
- * @benchmark
199
- * squaredOddsNullTransform: 1e+5: 78.409ms
200
- *
201
- * @note Bo5
202
- */
203
-
204
- {
205
- const numbers = [1, 2, 3, 4, 5]
206
-
207
- const setEmpty = () => new Set()
208
-
209
- const uint8ArrayEmpty = () => new Uint8Array(0)
210
-
211
- const square = number => number ** 2
212
-
213
- const squaredOddsNullTransform = transform(squaredOdds, null)
214
-
215
- // console.log(squaredOddsNullTransform(numbers))
216
-
217
- // timeInLoop('squaredOddsNullTransform', 1e5, () => squaredOddsNullTransform(numbers))
218
- }
40
+ module.exports = suite
@@ -0,0 +1,25 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const tryCatch = require('../tryCatch')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e4 })
5
+
6
+ suite.add('rubico tryCatch', async () => {
7
+ await tryCatch('hello', async message => {
8
+ throw new Error(message)
9
+ console.log(message)
10
+ }, async error => error)
11
+ })
12
+
13
+ suite.add('rubico tryCatch tacit', async () => {
14
+ await tryCatch(async message => {
15
+ throw new Error(message)
16
+ }, async error => error)('hello')
17
+ })
18
+
19
+ if (require.main == module) {
20
+ suite.on('caseBestRun', run => console.log(run.output))
21
+ suite.on('suiteBestRun', () => process.exit(0))
22
+ suite.run()
23
+ }
24
+
25
+ module.exports = suite
@@ -1,108 +1,32 @@
1
+ const _fp = require('lodash/fp')
2
+ const R = require('ramda')
3
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
1
4
  const tryCatch = require('../tryCatch')
2
- const timeInLoop = require('../x/timeInLoop')
3
5
 
4
- const isPromise = value => value != null && typeof value.then == 'function'
6
+ const ramdaTryCatch = R.tryCatch
7
+ const suite = new TimeInLoopSuite({ loopCount: 1e5 })
5
8
 
6
- const tryCatch2 = (tryer, catcher) => function tryCatcher(...args) {
7
- try {
8
- const output = tryer.apply(null, args)
9
- return isPromise(output)
10
- ? output.catch(err => catcher.call(null, err, ...args))
11
- : output
12
- } catch (err) {
13
- return catcher.call(null, err, ...args)
14
- }
15
- }
9
+ suite.add('rubico tryCatch', () => {
10
+ tryCatch('hello', message => {
11
+ throw new Error(message)
12
+ }, error => error)
13
+ })
16
14
 
17
- // argument resolver for curry3
18
- const curry3ResolveArg0 = (
19
- baseFunc, arg1, arg2,
20
- ) => function arg0Resolver(arg0) {
21
- return baseFunc(arg0, arg1, arg2)
22
- }
15
+ suite.add('rubico tryCatch tacit', () => {
16
+ tryCatch(message => {
17
+ throw new Error(message)
18
+ }, error => error)('hello')
19
+ })
23
20
 
24
- // argument resolver for curry3
25
- const curry3ResolveArg1 = (
26
- baseFunc, arg0, arg2,
27
- ) => function arg1Resolver(arg1) {
28
- return baseFunc(arg0, arg1, arg2)
29
- }
30
-
31
- // argument resolver for curry3
32
- const curry3ResolveArg2 = (
33
- baseFunc, arg0, arg1,
34
- ) => function arg2Resolver(arg2) {
35
- return baseFunc(arg0, arg1, arg2)
36
- }
21
+ suite.add('ramda tryCatch', () => {
22
+ ramdaTryCatch(message => {
23
+ throw new Error(message)
24
+ }, error => error)('hello')
25
+ })
37
26
 
38
- /**
39
- * @name curry3
40
- *
41
- * @synopsis
42
- * __ = Symbol('placeholder')
43
- *
44
- * curry3(
45
- * baseFunc function,
46
- * arg0 __|any,
47
- * arg1 __|any,
48
- * arg2 __|any
49
- * ) -> function
50
- */
51
- const curry3 = function (baseFunc, arg0, arg1, arg2) {
52
- if (arg0 == __) {
53
- return curry3ResolveArg0(baseFunc, arg1, arg2)
54
- }
55
- if (arg1 == __) {
56
- return curry3ResolveArg1(baseFunc, arg0, arg2)
57
- }
58
- return curry3ResolveArg2(baseFunc, arg0, arg1)
27
+ if (process.argv[1] == __filename) {
28
+ suite.on('caseBestRun', run => console.log(run.output))
29
+ suite.run()
59
30
  }
60
31
 
61
- const tryCatch3 = (tryer, catcher) => function tryCatcher(...args) {
62
- try {
63
- const result = tryer(...args)
64
- return isPromise(result)
65
- ? result.catch(curry3(catcherApply, catcher, __, args))
66
- : result
67
- } catch (err) {
68
- return catcher(err, ...args)
69
- }
70
- }
71
-
72
- /**
73
- * @name tryCatch
74
- *
75
- * @benchmark
76
- * tryCatch2: 1e+6: 36.369ms
77
- * tryCatch3: 1e+6: 17.027ms
78
- *
79
- * TODO find the date
80
- */
81
-
82
- {
83
- const identity = value => value
84
-
85
- const noop = () => {}
86
-
87
- const isPromise = value => value != null && typeof value.then == 'function'
88
-
89
- // console.log(tryCatch2(identity, noop)('yo'))
90
- // console.log(tryCatch3(identity, noop)('yo'))
91
-
92
- // timeInLoop('tryCatch2', 1e6, () => tryCatch2(identity, noop)('yo'))
93
-
94
- // timeInLoop('tryCatch3', 1e6, () => tryCatch3(identity, noop)('yo'))
95
- }
96
-
97
- /**
98
- * @name tryCatch 2022-06-13
99
- *
100
- * @benchmark
101
- * tryCatch: 1e+6: tryCatch: 1e+6: 39.787ms
102
- */
103
-
104
- {
105
- const identity = value => value
106
- const noop = () => {}
107
- timeInLoop('tryCatch', 1e6, () => tryCatch2(identity, noop)('yo'))
108
- }
32
+ module.exports = suite
@@ -1,21 +1,14 @@
1
+ #!/usr/bin/env node
2
+
3
+ require('./global')
1
4
  const rubico = require('./rubico')
2
5
  const rubicoX = require('./x')
6
+ const Transducer = require('./Transducer')
3
7
  const rubicoVersion = require('./package.json').version
4
8
  const fs = require('fs')
5
9
  const nodePath = require('path')
6
10
  const { minify } = require('terser')
7
11
 
8
- const {
9
- pipe, tap,
10
- switchCase, tryCatch,
11
- fork, assign, get, pick, omit,
12
- map, filter, reduce, transform, flatMap,
13
- and, or, not, any, all,
14
- eq, gt, lt, gte, lte,
15
- thunkify, always,
16
- curry, __,
17
- } = rubico
18
-
19
12
  const {
20
13
  identity,
21
14
  noop,
@@ -56,7 +49,7 @@ const pathResolve = nodePath.resolve
56
49
  const pathDirname = nodePath.dirname
57
50
 
58
51
  // path string => cjs string
59
- const pathToCode = pipe.sync([
52
+ const pathToCode = pipe([
60
53
  fs.readFileSync,
61
54
  toString,
62
55
  replace(/\/\*\*[\s\S]+?\*\//g, ''),
@@ -65,18 +58,19 @@ const pathToCode = pipe.sync([
65
58
 
66
59
  // path string => codeBundle string
67
60
  const pathToCodeBundle = pipe([
68
- fork({
61
+ all({
69
62
  path: identity,
70
63
  code: pathToCode,
71
64
  }),
72
65
 
73
66
  ({ path, code }) => {
74
67
  const alreadyRequiredPaths = new Set()
75
- let cwd = pathDirname(path),
76
- result = code
68
+ const cwd = pathDirname(path)
69
+ let result = code
77
70
  while (result.includes('require(')) {
78
- result = result.replace(/const \w+ = require\('(.+)'\)/g, (match, $1) => {
79
- const requiredPath = pathResolve(cwd, `${$1}.js`)
71
+ result = result.replace(/const \w+ = require\('(?<path>.+)'\)/g, (match, p1, offset, source, groups) => {
72
+ const { path } = groups
73
+ const requiredPath = pathResolve(cwd, `${path}.js`)
80
74
  if (alreadyRequiredPaths.has(requiredPath)) {
81
75
  return ''
82
76
  }
@@ -85,26 +79,30 @@ const pathToCodeBundle = pipe([
85
79
 
86
80
  while (requiredCode.includes('require(')) {
87
81
  requiredCode = requiredCode.replace(
88
- /const \w+ = require\('(.+)'\)/,
82
+ /const \w+ = require\('(?<path>.+)'\)/,
89
83
  pipe([
90
- (match, $1) => $1,
91
- filename => `${filename}.js`,
84
+ (match, p1, offset, source, groups) => groups.path,
85
+ path => `${path}.js`,
92
86
  curry.arity(2, pathResolve, pathDirname(requiredPath), __),
93
87
  switchCase([
94
88
  requiredPath => alreadyRequiredPaths.has(requiredPath),
95
89
  always(''),
96
90
  pipe([
97
91
  tap(requiredPath => alreadyRequiredPaths.add(requiredPath)),
98
- fork({
92
+ all({
99
93
  requiredPath: identity,
100
94
  code: pathToCode,
101
95
  }),
102
96
  ({ requiredPath, code }) => {
103
- code = code.replace(/const (\w+) = require\('(.+)'\)/g, (match, $1, $2) => {
104
- const newPath = pathResolve(pathDirname(requiredPath), $2)
105
- const newStatement = `const ${$1} = require('${newPath}')`
106
- return newStatement
107
- })
97
+ code = code.replace(
98
+ /const (?<moduleName>\w+) = require\('(?<path>.+)'\)/g,
99
+ (match, p1, p2, offset, source, groups) => {
100
+ const { moduleName, path } = groups
101
+ const newPath = pathResolve(pathDirname(requiredPath), path)
102
+ const newStatement = `const ${moduleName} = require('${newPath}')`
103
+ return newStatement
104
+ }
105
+ )
108
106
  return code
109
107
  },
110
108
  ]),
@@ -129,25 +127,26 @@ const ignoredNames = new Set([
129
127
  // name string => boolean
130
128
  const nameIsIgnored = name => ignoredNames.has(name)
131
129
 
132
- pipe([
130
+ const distributor = pipe([
133
131
  tap(tryCatch(
134
132
  thunkify(fs.promises.rm, `${__dirname}/dist`, { recursive: true }),
135
133
  noop)),
136
134
  tap(thunkify(fs.promises.mkdir, `${__dirname}/dist/x`, { recursive: true })),
137
135
  transform(
138
- pipe([
139
- filter(pipe([
136
+ compose([
137
+ Transducer.filter(pipe([
140
138
  get('name'),
141
139
  not(nameIsIgnored),
142
140
  ])),
143
- map(assign({
141
+
142
+ Transducer.map(assign({
144
143
  baseCodeBundle: pipe([
145
144
  get('path'),
146
145
  pathToCodeBundle,
147
146
  ]),
148
147
  })),
149
148
 
150
- map(switchCase([
149
+ Transducer.map(switchCase([
151
150
  or([
152
151
  ({ distPath }) => distPath.endsWith('rubico.mjs'),
153
152
  ({ distPath }) => distPath.endsWith('rubico.es.js'),
@@ -157,15 +156,15 @@ pipe([
157
156
  /**
158
157
  * rubico v${rubicoVersion}
159
158
  * https://github.com/a-synchronous/rubico
160
- * (c) 2019-2021 Richard Tong
159
+ * (c) 2019-2023 Richard Tong
161
160
  * rubico may be freely distributed under the MIT license.
162
161
  */
163
162
  ${baseCodeBundle}export {
164
163
  pipe, tap,
165
164
  switchCase, tryCatch,
166
- fork, assign, get, set, pick, omit,
165
+ all, assign, get, set, pick, omit,
167
166
  map, filter, reduce, transform, flatMap,
168
- and, or, not, any, all,
167
+ and, or, not, some, every,
169
168
  eq, gt, lt, gte, lte,
170
169
  thunkify, always,
171
170
  curry, __,
@@ -184,15 +183,15 @@ export default ${name}
184
183
  /**
185
184
  * rubico v${rubicoVersion}
186
185
  * https://github.com/a-synchronous/rubico
187
- * (c) 2019-2021 Richard Tong
186
+ * (c) 2019-2023 Richard Tong
188
187
  * rubico may be freely distributed under the MIT license.
189
188
  */
190
189
  ${(await minify(`${baseCodeBundle}export {
191
190
  pipe, tap,
192
191
  switchCase, tryCatch,
193
- fork, assign, get, set, pick, omit,
192
+ all, assign, get, set, pick, omit,
194
193
  map, filter, reduce, transform, flatMap,
195
- and, or, not, any, all,
194
+ and, or, not, some, every,
196
195
  eq, gt, lt, gte, lte,
197
196
  thunkify, always,
198
197
  curry, __,
@@ -208,7 +207,7 @@ export default ${name}`)).code}
208
207
  /**
209
208
  * rubico v${rubicoVersion}
210
209
  * https://github.com/a-synchronous/rubico
211
- * (c) 2019-2021 Richard Tong
210
+ * (c) 2019-2023 Richard Tong
212
211
  * rubico may be freely distributed under the MIT license.
213
212
  */
214
213
  ${baseCodeBundle}export default ${name}
@@ -221,7 +220,7 @@ ${baseCodeBundle}export default ${name}
221
220
  /**
222
221
  * rubico v${rubicoVersion}
223
222
  * https://github.com/a-synchronous/rubico
224
- * (c) 2019-2021 Richard Tong
223
+ * (c) 2019-2023 Richard Tong
225
224
  * rubico may be freely distributed under the MIT license.
226
225
  */
227
226
  ${(await minify(`${baseCodeBundle}export default ${name}`)).code}
@@ -234,7 +233,7 @@ ${(await minify(`${baseCodeBundle}export default ${name}`)).code}
234
233
  /**
235
234
  * rubico v${rubicoVersion}
236
235
  * https://github.com/a-synchronous/rubico
237
- * (c) 2019-2021 Richard Tong
236
+ * (c) 2019-2023 Richard Tong
238
237
  * rubico may be freely distributed under the MIT license.
239
238
  */
240
239
 
@@ -254,7 +253,7 @@ ${baseCodeBundle}return ${name}
254
253
  /**
255
254
  * rubico v${rubicoVersion}
256
255
  * https://github.com/a-synchronous/rubico
257
- * (c) 2019-2021 Richard Tong
256
+ * (c) 2019-2023 Richard Tong
258
257
  * rubico may be freely distributed under the MIT license.
259
258
  */
260
259
 
@@ -272,11 +271,11 @@ ${baseCodeBundle}return ${name}
272
271
  }
273
272
  ])),
274
273
 
275
- forEach(pipe([
274
+ Transducer.map(tap(pipe([
276
275
  get('distPath'),
277
276
  replace(process.env.HOME, '~'),
278
277
  curry.arity(2, console.log, 'writing', __),
279
- ])),
278
+ ]))),
280
279
  ]),
281
280
  {
282
281
  async concat({ distPath, codeBundle }) {
@@ -287,18 +286,19 @@ ${baseCodeBundle}return ${name}
287
286
  // Stdout,
288
287
  null,
289
288
  ),
290
- ])([
289
+ ])
291
290
 
291
+ distributor([
292
292
  Object.keys(rubico).map(pipe([
293
- fork({
293
+ all({
294
294
  name: identity,
295
295
  path: pipe([
296
296
  name => `${name}.js`,
297
297
  curry.arity(2, pathResolve, __dirname, __),
298
298
  ]),
299
299
  }),
300
- ])).flatMap(fork([
301
-
300
+ ]))
301
+ .flatMap(all([
302
302
  assign({
303
303
  type: always('esm'),
304
304
  distPath: pipe([
@@ -352,15 +352,15 @@ ${baseCodeBundle}return ${name}
352
352
  ])),
353
353
 
354
354
  Object.keys(rubicoX).map(pipe([
355
- fork({
355
+ all({
356
356
  name: identity,
357
357
  path: pipe([
358
358
  name => `${name}.js`,
359
359
  curry.arity(3, pathResolve, __dirname, 'x', __),
360
360
  ]),
361
361
  }),
362
-
363
- ])).flatMap(fork([
362
+ ]))
363
+ .flatMap(all([
364
364
  assign({
365
365
  type: always('esm'),
366
366
  distPath: pipe([