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,174 +1,27 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const { assign } = require('..')
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const assign = require('../assign')
3
3
 
4
- const isPromise = value => value != null && typeof value.then == 'function'
4
+ const suite = new TimeInLoopSuite()
5
5
 
6
- const promiseAll = Promise.all.bind(Promise)
7
-
8
- const funcObjectAll1 = funcs => function objectAllFuncs(...args) {
9
- const output = {}, promises = []
10
- for (const key in funcs) {
11
- const outputItem = funcs[key].apply(null, args)
12
- if (isPromise(outputItem)) {
13
- promises.push(outputItem.then(res => {
14
- output[key] = res
15
- }))
16
- } else {
17
- output[key] = outputItem
18
- }
19
- }
20
- return promises.length == 0 ? output : promiseAll(promises).then(() => output)
21
- }
22
-
23
- const funcObjectAll2 = funcs => function objectAllFuncs(...args) {
24
- const output = {}, promises = []
25
- for (const key in funcs) {
26
- const outputItem = funcs[key](...args)
27
- if (isPromise(outputItem)) {
28
- promises.push(outputItem.then(res => {
29
- output[key] = res
30
- }))
31
- } else {
32
- output[key] = outputItem
33
- }
34
- }
35
- return promises.length == 0 ? output : promiseAll(promises).then(() => output)
36
- }
37
-
38
- const funcObjectAll3 = funcs => function objectAllFuncs(...args) {
39
- const result = {}
40
- let isAsync = false
41
- for (const key in funcs) {
42
- const resultItem = funcs[key](...args)
43
- if (isPromise(resultItem)) isAsync = true
44
- result[key] = resultItem
45
- }
46
- return isAsync ? promiseObjectAll(result) : result
47
- }
48
-
49
-
50
- const vanilla1 = ({ number }) => ({
51
- number,
52
- a: number + 1,
53
- b: number + 2,
54
- c: number + 3,
6
+ suite.add('rubico assign', () => {
7
+ assign({}, {
8
+ a: () => 1,
9
+ b: () => 2,
10
+ c: () => 3,
11
+ })
55
12
  })
56
13
 
57
- const funcs = {
58
- a: ({ number }) => number + 1,
59
- b: ({ number }) => number + 2,
60
- c: ({ number }) => number + 3,
61
- }
62
-
63
- const vanilla2 = function (obj) {
64
- const output = { ...obj }
65
- for (const key in funcs) {
66
- output[key] = funcs[key](obj)
67
- }
68
- return output
69
- }
70
-
71
- const assign1 = function (funcs) {
72
- const allFuncs = funcObjectAll1.call(null, funcs)
73
- return function assignment(input) {
74
- const output = allFuncs.call(null, input)
75
- return isPromise(output)
76
- ? output.then(res => ({ ...input, ...res }))
77
- : ({ ...input, ...output })
78
- }
79
- }
80
-
81
- const assign2 = function (funcs) {
82
- const allFuncs = funcObjectAll2(funcs)
83
- return function assignment(input) {
84
- const output = allFuncs(input)
85
- return isPromise(output)
86
- ? output.then(res => ({ ...input, ...res }))
87
- : ({ ...input, ...output })
88
- }
89
- }
90
-
91
- const assign3 = function (funcs) {
92
- const allFuncs = funcObjectAll3(funcs)
93
- return function assignment(input) {
94
- const output = allFuncs(input)
95
- return isPromise(output)
96
- ? output.then(res => ({ ...input, ...res }))
97
- : ({ ...input, ...output })
98
- }
99
- }
100
-
101
- // argument resolver for curry2
102
- const curry2ResolveArg0 = (
103
- baseFunc, arg1,
104
- ) => function arg0Resolver(arg0) {
105
- return baseFunc(arg0, arg1)
106
- }
107
-
108
- // argument resolver for curry2
109
- const curry2ResolveArg1 = (
110
- baseFunc, arg0,
111
- ) => function arg1Resolver(arg1) {
112
- return baseFunc(arg0, arg1)
113
- }
114
-
115
- /**
116
- * @name curry2
117
- *
118
- * @synopsis
119
- * __ = Symbol('placeholder')
120
- *
121
- * curry2(
122
- * baseFunc function,
123
- * arg0 __|any,
124
- * arg1 __|any,
125
- * ) -> function
126
- */
127
- const curry2 = function (baseFunc, arg0, arg1) {
128
- return arg0 == __
129
- ? curry2ResolveArg0(baseFunc, arg1)
130
- : curry2ResolveArg1(baseFunc, arg0)
131
- }
132
-
133
- // const objectAssign = Object.assign
134
-
135
- const objectAssign = (objA, objB) => ({ ...objA, ...objB })
14
+ suite.add('rubico assign tacit', () => {
15
+ assign({
16
+ a: () => 1,
17
+ b: () => 2,
18
+ c: () => 3,
19
+ })({})
20
+ })
136
21
 
137
- const assign5 = function (funcs) {
138
- const allFuncs = funcObjectAll3(funcs)
139
- return function assignment(object) {
140
- const result = allFuncs(object)
141
- return isPromise(result)
142
- ? result.then(curry2(objectAssign, object, __))
143
- : ({ ...object, ...result })
144
- }
22
+ if (process.argv[1] == __filename) {
23
+ suite.on('caseBestRun', run => console.log(run.output))
24
+ suite.run()
145
25
  }
146
26
 
147
- /**
148
- * @name assign
149
- *
150
- * @benchmark
151
- * assign1: 1e+5: 67.168ms
152
- * assign2: 1e+5: 60.779ms
153
- * assign3: 1e+5: 58.094ms
154
- * assign5: 1e+5: 59.132ms
155
- *
156
- * @remarks
157
- * currying is slower here
158
- */
159
-
160
- {
161
-
162
- // console.log('assign1', assign1(funcs)({ number: 2 }))
163
- // console.log('assign2', assign2(funcs)({ number: 2 }))
164
- // console.log('assign3', assign3(funcs)({ number: 2 }))
165
- // console.log('assign5', assign5(funcs)({ number: 2 }))
166
-
167
- // timeInLoop('assign1', 1e5, () => assign1(funcs)({ number: 2 }))
168
-
169
- // timeInLoop('assign2', 1e5, () => assign2(funcs)({ number: 2 }))
170
-
171
- // timeInLoop('assign3', 1e5, () => assign3(funcs)({ number: 2 }))
172
-
173
- // timeInLoop('assign5', 1e5, () => assign5(funcs)({ number: 2 }))
174
- }
27
+ module.exports = suite
@@ -1,55 +1,35 @@
1
- const rubico = require('..')
2
- const timeInLoop = require('../x/timeInLoop')
1
+ const _fp = require('lodash/fp')
3
2
  const R = require('ramda')
4
- const curry1 = require('../_internal/curry1')
5
- const curry2 = require('../_internal/curry2')
6
- const curry3 = require('../_internal/curry3')
7
- const curry4 = require('../_internal/curry4')
8
-
9
- const { __ } = rubico
10
-
11
- /**
12
- * @name curryRace
13
- *
14
- * @benchmark
15
- * rubico.curry: 1e+5: 60.554ms
16
- * R.curry: 1e+5: 106.163ms
17
- */
18
- const add6 = (a, b, c, d, e, f) => a + b + c + d + e + f
19
-
20
- // console.log(rubico.curry(add6)(1, 2)(3)(4, 5, 6)) // 21
21
- // console.log(R.curry(add6)(1, 2)(3)(4, 5, 6)) // 21
22
-
23
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(add6)(1, 2)(3)(4, 5, 6))
24
- // timeInLoop('R.curry', 1e5, () => R.curry(add6)(1, 2)(3)(4, 5, 6))
25
-
26
- /**
27
- * @name curryPlaceholderRace
28
- *
29
- * @benchmark
30
- * rubico.curry: 1e+5: 98.834ms
31
- * R.curry: 1e+5: 147.693ms
32
- */
33
- // console.log(rubico.curry(add6)(1, 2, rubico.__)(3)(4, rubico.__, 6)(5)) // 21
34
- // console.log(R.curry(add6)(1, 2, R.__)(3)(4, R.__, 6)(5)) // 21
35
-
36
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(add6)(1, 2, rubico.__)(3)(4, rubico.__, 6)(5))
37
- // timeInLoop('R.curry', 1e5, () => R.curry(add6)(1, 2, R.__)(3)(4, R.__, 6)(5))
38
-
39
- /**
40
- * @name curryRaceUnary
41
- *
42
- * @benchmark
43
- * rubico.curry: 1e+5: 60.554ms
44
- * R.curry: 1e+5: 106.163ms
45
- *
46
- * rubico.curry: 1e+5: 45.475ms
47
- * R.curry: 1e+5: 66.493ms
48
- */
49
- const identity = value => value
50
-
51
- // console.log(rubico.curry(identity)(__)(1)) // 1
52
- // console.log(R.curry(identity)(R.__)(1)) // 1
53
-
54
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(identity)(__)(1))
55
- // timeInLoop('R.curry', 1e5, () => R.curry(identity)(R.__)(1))
3
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
4
+ const __ = require('../__')
5
+ const curry = require('../curry')
6
+
7
+ const lodashFpCurry = _fp.curry
8
+ const lodashFp__ = _fp.__
9
+ const ramdaCurry = R.curry
10
+ const ramda__ = R.__
11
+
12
+ const suite = new TimeInLoopSuite()
13
+
14
+ suite.add('rubico curry', () => {
15
+ curry((a, b) => a + b, __, 1)(2)
16
+ })
17
+
18
+ suite.add('rubico curry tacit', () => {
19
+ curry((a, b) => a + b)(__, 1)(2)
20
+ })
21
+
22
+ suite.add('lodash/fp curry', () => {
23
+ lodashFpCurry((a, b) => a + b)(lodashFp__, 1)(2)
24
+ })
25
+
26
+ suite.add('ramda curry', () => {
27
+ ramdaCurry((a, b) => a + b)(ramda__, 1)(2)
28
+ })
29
+
30
+ if (process.argv[1] == __filename) {
31
+ suite.on('caseBestRun', run => console.log(run.output))
32
+ suite.run()
33
+ }
34
+
35
+ module.exports = suite
@@ -0,0 +1,23 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const eq = require('../eq')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico eq Promises', async () => {
7
+ await eq(1, Promise.resolve(1))
8
+ })
9
+
10
+ suite.add('rubico eq left value right resolver', async () => {
11
+ await eq({ a: 1 }, 1, async value => value.a)
12
+ })
13
+
14
+ suite.add('rubico eq left resolver right resolver', async () => {
15
+ await eq({ a: 1 }, async value => value.a, async value => value.a)
16
+ })
17
+
18
+ if (process.argv[1] == __filename) {
19
+ suite.on('caseBestRun', run => console.log(run.output))
20
+ suite.run()
21
+ }
22
+
23
+ module.exports = suite
package/benchmarks/eq.js CHANGED
@@ -1,25 +1,23 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
- const _ = require('lodash')
4
- const R = require('ramda')
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const eq = require('../eq')
5
3
 
6
- /**
7
- * @name eq
8
- *
9
- * @benchmark
10
- * rubico.eq(0, 0): 1e+7: 12.499ms
11
- * _.eq(0, 0): 1e+7: 12.585ms
12
- * R.equals(0, 0): 1e+7: 196.767ms
13
- */
4
+ const suite = new TimeInLoopSuite()
14
5
 
15
- const rubicoEq = rubico.eq(0, 0)
6
+ suite.add('rubico eq primitive', () => {
7
+ eq(1, 1)
8
+ })
16
9
 
17
- // console.log(rubicoEq())
18
- // console.log(_.eq(0, 0))
19
- // console.log(R.equals(0, 0))
10
+ suite.add('rubico eq left value right resolver', () => {
11
+ eq({ a: 1 }, 1, value => value.a)
12
+ })
20
13
 
21
- // timeInLoop('rubico.eq(0, 0)', 1e7, () => rubicoEq())
14
+ suite.add('rubico eq left resolver right resolver', () => {
15
+ eq({ a: 1 }, value => value.a, value => value.a)
16
+ })
22
17
 
23
- // timeInLoop('_.eq(0, 0)', 1e7, () => _.eq(0, 0))
18
+ if (process.argv[1] == __filename) {
19
+ suite.on('caseBestRun', run => console.log(run.output))
20
+ suite.run()
21
+ }
24
22
 
25
- // timeInLoop('R.equals(0, 0)', 1e7, () => R.equals(0, 0))
23
+ module.exports = suite
@@ -0,0 +1,19 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const every = require('../every')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico every', async () => {
7
+ await every([1, 3, 5], async number => number % 2 == 1)
8
+ })
9
+
10
+ suite.add('rubico every tacit', async () => {
11
+ await every(async number => number % 2 == 1)([1, 3, 5])
12
+ })
13
+
14
+ if (process.argv[1] == __filename) {
15
+ suite.on('caseBestRun', run => console.log(run.output))
16
+ suite.run()
17
+ }
18
+
19
+ module.exports = suite
@@ -0,0 +1,19 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const every = require('../every')
3
+
4
+ const suite = new TimeInLoopSuite()
5
+
6
+ suite.add('rubico every', () => {
7
+ every([1, 3, 5], number => number % 2 == 1)
8
+ })
9
+
10
+ suite.add('rubico every tacit', () => {
11
+ every(number => number % 2 == 1)([1, 3, 5])
12
+ })
13
+
14
+ if (process.argv[1] == __filename) {
15
+ suite.on('caseBestRun', run => console.log(run.output))
16
+ suite.run()
17
+ }
18
+
19
+ module.exports = suite
@@ -0,0 +1,32 @@
1
+ const Bluebird = require('bluebird')
2
+ const async = require('async')
3
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
4
+ const filter = require('../filter')
5
+
6
+ const asyncFilter = async.filter
7
+ const bluebirdFilter = Bluebird.filter
8
+
9
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
10
+
11
+ suite.add('rubico filter', async () => {
12
+ await filter([1, 2, 3, 4, 5], async value => value % 2 == 1)
13
+ })
14
+
15
+ suite.add('rubico filter tacit', async () => {
16
+ await filter(async value => value % 2 == 1)([1, 2, 3, 4, 5])
17
+ })
18
+
19
+ suite.add('async filter', async () => {
20
+ await asyncFilter([1, 2, 3, 4, 5], async value => value % 2 == 1)
21
+ })
22
+
23
+ suite.add('Bluebird filter', async () => {
24
+ await bluebirdFilter([1, 2, 3, 4, 5], async value => value % 2 == 1)
25
+ })
26
+
27
+ if (process.argv[1] == __filename) {
28
+ suite.on('caseBestRun', run => console.log(run.output))
29
+ suite.run()
30
+ }
31
+
32
+ module.exports = suite