rubico 1.9.6 → 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 (589) 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 +162 -0
  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 +105 -45
  53. package/always.js +3 -9
  54. package/and.js +69 -45
  55. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  56. package/archive/_Promise-2023-05-29.js +93 -0
  57. package/archive/arrayMap2-2023-05-29.js +73 -0
  58. package/archive/benchmarks-v1.9.7/all.js +34 -0
  59. package/archive/benchmarks-v1.9.7/and.js +24 -0
  60. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  61. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  62. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  63. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  64. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  65. package/archive/benchmarks-v1.9.7/get.js +44 -0
  66. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  67. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  69. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  70. package/archive/benchmarks-v1.9.7/map.js +892 -0
  71. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  72. package/archive/benchmarks-v1.9.7/or.js +51 -0
  73. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  74. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  75. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  76. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  77. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  78. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  79. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  80. package/assign.js +45 -22
  81. package/bench +65 -0
  82. package/benchmark-output/v1.9.7 +268 -0
  83. package/benchmarks/all.async.js +43 -0
  84. package/benchmarks/all.js +42 -33
  85. package/benchmarks/always.js +15 -0
  86. package/benchmarks/and.async.js +25 -0
  87. package/benchmarks/and.js +20 -19
  88. package/benchmarks/assign.async.js +27 -0
  89. package/benchmarks/assign.js +20 -167
  90. package/benchmarks/curry.js +34 -54
  91. package/benchmarks/eq.async.js +23 -0
  92. package/benchmarks/eq.js +17 -19
  93. package/benchmarks/every.async.js +19 -0
  94. package/benchmarks/every.js +19 -0
  95. package/benchmarks/filter.async.js +32 -0
  96. package/benchmarks/filter.js +27 -1311
  97. package/benchmarks/flatMap.async.js +26 -0
  98. package/benchmarks/flatMap.js +26 -36
  99. package/benchmarks/get.async.js +19 -0
  100. package/benchmarks/get.js +27 -32
  101. package/benchmarks/gt.async.js +23 -0
  102. package/benchmarks/gt.js +17 -19
  103. package/benchmarks/gte.async.js +23 -0
  104. package/benchmarks/gte.js +17 -19
  105. package/benchmarks/lt.async.js +23 -0
  106. package/benchmarks/lt.js +17 -19
  107. package/benchmarks/lte.async.js +23 -0
  108. package/benchmarks/lte.js +17 -19
  109. package/benchmarks/map.async.js +43 -0
  110. package/benchmarks/map.js +24 -876
  111. package/benchmarks/misc/Promise.js +26 -0
  112. package/benchmarks/misc/isPromise.js +30 -0
  113. package/benchmarks/misc/promiseAll.js +36 -0
  114. package/benchmarks/not.js +23 -0
  115. package/benchmarks/omit.js +30 -20
  116. package/benchmarks/or.async.js +25 -0
  117. package/benchmarks/or.js +23 -49
  118. package/benchmarks/pick.js +30 -16
  119. package/benchmarks/pipe.async.js +47 -0
  120. package/benchmarks/pipe.js +46 -151
  121. package/benchmarks/reduce.async.js +32 -0
  122. package/benchmarks/reduce.js +27 -728
  123. package/benchmarks/set.async.js +19 -0
  124. package/benchmarks/set.js +41 -0
  125. package/benchmarks/some.async.js +19 -0
  126. package/benchmarks/some.js +19 -0
  127. package/benchmarks/switchCase.async.js +27 -0
  128. package/benchmarks/switchCase.js +55 -256
  129. package/benchmarks/tap.js +10 -85
  130. package/benchmarks/thunkify.js +15 -0
  131. package/benchmarks/transform.async.js +27 -0
  132. package/benchmarks/transform.js +28 -206
  133. package/benchmarks/tryCatch.async.js +25 -0
  134. package/benchmarks/tryCatch.js +24 -100
  135. package/{distributor.js → build} +50 -50
  136. package/compose.js +46 -0
  137. package/curry.js +20 -12
  138. package/dist/__.es.js +2 -2
  139. package/dist/__.es.min.js +2 -2
  140. package/dist/__.js +2 -2
  141. package/dist/__.min.js +2 -2
  142. package/dist/__.min.mjs +2 -2
  143. package/dist/__.mjs +2 -2
  144. package/dist/all.es.js +173 -92
  145. package/dist/all.es.min.js +3 -3
  146. package/dist/all.js +173 -92
  147. package/dist/all.min.js +3 -3
  148. package/dist/all.min.mjs +3 -3
  149. package/dist/all.mjs +173 -92
  150. package/dist/always.es.js +2 -2
  151. package/dist/always.es.min.js +2 -2
  152. package/dist/always.js +2 -2
  153. package/dist/always.min.js +2 -2
  154. package/dist/always.min.mjs +2 -2
  155. package/dist/always.mjs +2 -2
  156. package/dist/and.es.js +101 -32
  157. package/dist/and.es.min.js +3 -3
  158. package/dist/and.js +101 -32
  159. package/dist/and.min.js +3 -3
  160. package/dist/and.min.mjs +3 -3
  161. package/dist/and.mjs +101 -32
  162. package/dist/assign.es.js +37 -10
  163. package/dist/assign.es.min.js +3 -3
  164. package/dist/assign.js +37 -10
  165. package/dist/assign.min.js +3 -3
  166. package/dist/assign.min.mjs +3 -3
  167. package/dist/assign.mjs +37 -10
  168. package/dist/compose.es.js +71 -0
  169. package/dist/compose.es.min.js +7 -0
  170. package/dist/compose.js +78 -0
  171. package/dist/compose.min.js +8 -0
  172. package/dist/compose.min.mjs +7 -0
  173. package/dist/compose.mjs +71 -0
  174. package/dist/curry.es.js +2 -2
  175. package/dist/curry.es.min.js +2 -2
  176. package/dist/curry.js +2 -2
  177. package/dist/curry.min.js +2 -2
  178. package/dist/curry.min.mjs +2 -2
  179. package/dist/curry.mjs +2 -2
  180. package/dist/eq.es.js +172 -49
  181. package/dist/eq.es.min.js +3 -3
  182. package/dist/eq.js +172 -49
  183. package/dist/eq.min.js +3 -3
  184. package/dist/eq.min.mjs +3 -3
  185. package/dist/eq.mjs +172 -49
  186. package/dist/every.es.js +194 -0
  187. package/dist/every.es.min.js +7 -0
  188. package/dist/every.js +201 -0
  189. package/dist/every.min.js +8 -0
  190. package/dist/every.min.mjs +7 -0
  191. package/dist/every.mjs +194 -0
  192. package/dist/filter.es.js +14 -108
  193. package/dist/filter.es.min.js +3 -3
  194. package/dist/filter.js +14 -108
  195. package/dist/filter.min.js +3 -3
  196. package/dist/filter.min.mjs +3 -3
  197. package/dist/filter.mjs +14 -108
  198. package/dist/flatMap.es.js +27 -214
  199. package/dist/flatMap.es.min.js +3 -3
  200. package/dist/flatMap.js +27 -214
  201. package/dist/flatMap.min.js +3 -3
  202. package/dist/flatMap.min.mjs +3 -3
  203. package/dist/flatMap.mjs +27 -214
  204. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  205. package/dist/forEach.es.min.js +7 -0
  206. package/dist/{x/forEach.js → forEach.js} +52 -70
  207. package/dist/forEach.min.js +8 -0
  208. package/dist/forEach.min.mjs +7 -0
  209. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  210. package/dist/get.es.js +60 -5
  211. package/dist/get.es.min.js +3 -3
  212. package/dist/get.js +60 -5
  213. package/dist/get.min.js +3 -3
  214. package/dist/get.min.mjs +3 -3
  215. package/dist/get.mjs +60 -5
  216. package/dist/gt.es.js +171 -48
  217. package/dist/gt.es.min.js +3 -3
  218. package/dist/gt.js +171 -48
  219. package/dist/gt.min.js +3 -3
  220. package/dist/gt.min.mjs +3 -3
  221. package/dist/gt.mjs +171 -48
  222. package/dist/gte.es.js +171 -48
  223. package/dist/gte.es.min.js +3 -3
  224. package/dist/gte.js +171 -48
  225. package/dist/gte.min.js +3 -3
  226. package/dist/gte.min.mjs +3 -3
  227. package/dist/gte.mjs +171 -48
  228. package/dist/lt.es.js +171 -48
  229. package/dist/lt.es.min.js +3 -3
  230. package/dist/lt.js +171 -48
  231. package/dist/lt.min.js +3 -3
  232. package/dist/lt.min.mjs +3 -3
  233. package/dist/lt.mjs +171 -48
  234. package/dist/lte.es.js +171 -48
  235. package/dist/lte.es.min.js +3 -3
  236. package/dist/lte.js +171 -48
  237. package/dist/lte.min.js +3 -3
  238. package/dist/lte.min.mjs +3 -3
  239. package/dist/lte.mjs +171 -48
  240. package/dist/map.es.js +12 -101
  241. package/dist/map.es.min.js +3 -3
  242. package/dist/map.js +12 -101
  243. package/dist/map.min.js +3 -3
  244. package/dist/map.min.mjs +3 -3
  245. package/dist/map.mjs +12 -101
  246. package/dist/not.es.js +75 -14
  247. package/dist/not.es.min.js +3 -3
  248. package/dist/not.js +75 -14
  249. package/dist/not.min.js +3 -3
  250. package/dist/not.min.mjs +3 -3
  251. package/dist/not.mjs +75 -14
  252. package/dist/omit.es.js +38 -3
  253. package/dist/omit.es.min.js +3 -3
  254. package/dist/omit.js +38 -3
  255. package/dist/omit.min.js +3 -3
  256. package/dist/omit.min.mjs +3 -3
  257. package/dist/omit.mjs +38 -3
  258. package/dist/or.es.js +99 -31
  259. package/dist/or.es.min.js +3 -3
  260. package/dist/or.js +99 -31
  261. package/dist/or.min.js +3 -3
  262. package/dist/or.min.mjs +3 -3
  263. package/dist/or.mjs +99 -31
  264. package/dist/pick.es.js +38 -3
  265. package/dist/pick.es.min.js +3 -3
  266. package/dist/pick.js +38 -3
  267. package/dist/pick.min.js +3 -3
  268. package/dist/pick.min.mjs +3 -3
  269. package/dist/pick.mjs +38 -3
  270. package/dist/pipe.es.js +42 -46
  271. package/dist/pipe.es.min.js +3 -3
  272. package/dist/pipe.js +42 -46
  273. package/dist/pipe.min.js +3 -3
  274. package/dist/pipe.min.mjs +3 -3
  275. package/dist/pipe.mjs +42 -46
  276. package/dist/reduce.es.js +52 -94
  277. package/dist/reduce.es.min.js +3 -3
  278. package/dist/reduce.js +52 -94
  279. package/dist/reduce.min.js +3 -3
  280. package/dist/reduce.min.mjs +3 -3
  281. package/dist/reduce.mjs +52 -94
  282. package/dist/rubico.es.js +746 -869
  283. package/dist/rubico.es.min.js +3 -3
  284. package/dist/rubico.js +746 -869
  285. package/dist/rubico.min.js +3 -3
  286. package/dist/rubico.min.mjs +3 -3
  287. package/dist/rubico.mjs +746 -869
  288. package/dist/set.es.js +18 -3
  289. package/dist/set.es.min.js +3 -3
  290. package/dist/set.js +18 -3
  291. package/dist/set.min.js +3 -3
  292. package/dist/set.min.mjs +3 -3
  293. package/dist/set.mjs +18 -3
  294. package/dist/{any.js → some.es.js} +64 -54
  295. package/dist/some.es.min.js +7 -0
  296. package/dist/{any.mjs → some.js} +72 -48
  297. package/dist/some.min.js +8 -0
  298. package/dist/some.min.mjs +7 -0
  299. package/dist/{any.es.js → some.mjs} +65 -48
  300. package/dist/switchCase.es.js +55 -5
  301. package/dist/switchCase.es.min.js +3 -3
  302. package/dist/switchCase.js +55 -5
  303. package/dist/switchCase.min.js +3 -3
  304. package/dist/switchCase.min.mjs +3 -3
  305. package/dist/switchCase.mjs +55 -5
  306. package/dist/tap.es.js +2 -9
  307. package/dist/tap.es.min.js +3 -3
  308. package/dist/tap.js +2 -9
  309. package/dist/tap.min.js +3 -3
  310. package/dist/tap.min.mjs +3 -3
  311. package/dist/tap.mjs +2 -9
  312. package/dist/thunkify.es.js +45 -2
  313. package/dist/thunkify.es.min.js +3 -3
  314. package/dist/thunkify.js +45 -2
  315. package/dist/thunkify.min.js +3 -3
  316. package/dist/thunkify.min.mjs +3 -3
  317. package/dist/thunkify.mjs +45 -2
  318. package/dist/transform.es.js +35 -71
  319. package/dist/transform.es.min.js +3 -3
  320. package/dist/transform.js +35 -71
  321. package/dist/transform.min.js +3 -3
  322. package/dist/transform.min.mjs +3 -3
  323. package/dist/transform.mjs +35 -71
  324. package/dist/tryCatch.es.js +33 -17
  325. package/dist/tryCatch.es.min.js +3 -3
  326. package/dist/tryCatch.js +33 -17
  327. package/dist/tryCatch.min.js +3 -3
  328. package/dist/tryCatch.min.mjs +3 -3
  329. package/dist/tryCatch.mjs +33 -17
  330. package/dist/x/append.es.js +2 -2
  331. package/dist/x/append.es.min.js +2 -2
  332. package/dist/x/append.js +2 -2
  333. package/dist/x/append.min.js +2 -2
  334. package/dist/x/append.min.mjs +2 -2
  335. package/dist/x/append.mjs +2 -2
  336. package/dist/x/callProp.es.js +2 -2
  337. package/dist/x/callProp.es.min.js +2 -2
  338. package/dist/x/callProp.js +2 -2
  339. package/dist/x/callProp.min.js +2 -2
  340. package/dist/x/callProp.min.mjs +2 -2
  341. package/dist/x/callProp.mjs +2 -2
  342. package/dist/x/defaultsDeep.es.js +2 -2
  343. package/dist/x/defaultsDeep.es.min.js +2 -2
  344. package/dist/x/defaultsDeep.js +2 -2
  345. package/dist/x/defaultsDeep.min.js +2 -2
  346. package/dist/x/defaultsDeep.min.mjs +2 -2
  347. package/dist/x/defaultsDeep.mjs +2 -2
  348. package/dist/x/differenceWith.es.js +7 -7
  349. package/dist/x/differenceWith.es.min.js +3 -3
  350. package/dist/x/differenceWith.js +7 -7
  351. package/dist/x/differenceWith.min.js +2 -2
  352. package/dist/x/differenceWith.min.mjs +3 -3
  353. package/dist/x/differenceWith.mjs +7 -7
  354. package/dist/x/filterOut.es.js +60 -117
  355. package/dist/x/filterOut.es.min.js +3 -3
  356. package/dist/x/filterOut.js +60 -117
  357. package/dist/x/filterOut.min.js +3 -3
  358. package/dist/x/filterOut.min.mjs +3 -3
  359. package/dist/x/filterOut.mjs +60 -117
  360. package/dist/x/find.es.js +2 -2
  361. package/dist/x/find.es.min.js +2 -2
  362. package/dist/x/find.js +2 -2
  363. package/dist/x/find.min.js +2 -2
  364. package/dist/x/find.min.mjs +2 -2
  365. package/dist/x/find.mjs +2 -2
  366. package/dist/x/findIndex.es.js +2 -2
  367. package/dist/x/findIndex.es.min.js +2 -2
  368. package/dist/x/findIndex.js +2 -2
  369. package/dist/x/findIndex.min.js +2 -2
  370. package/dist/x/findIndex.min.mjs +2 -2
  371. package/dist/x/findIndex.mjs +2 -2
  372. package/dist/x/first.es.js +2 -2
  373. package/dist/x/first.es.min.js +2 -2
  374. package/dist/x/first.js +2 -2
  375. package/dist/x/first.min.js +2 -2
  376. package/dist/x/first.min.mjs +2 -2
  377. package/dist/x/first.mjs +2 -2
  378. package/dist/x/flatten.es.js +20 -207
  379. package/dist/x/flatten.es.min.js +3 -3
  380. package/dist/x/flatten.js +20 -207
  381. package/dist/x/flatten.min.js +3 -3
  382. package/dist/x/flatten.min.mjs +3 -3
  383. package/dist/x/flatten.mjs +20 -207
  384. package/dist/x/groupBy.es.js +52 -94
  385. package/dist/x/groupBy.es.min.js +3 -3
  386. package/dist/x/groupBy.js +52 -94
  387. package/dist/x/groupBy.min.js +3 -3
  388. package/dist/x/groupBy.min.mjs +3 -3
  389. package/dist/x/groupBy.mjs +52 -94
  390. package/dist/x/has.es.js +2 -2
  391. package/dist/x/has.es.min.js +2 -2
  392. package/dist/x/has.js +2 -2
  393. package/dist/x/has.min.js +2 -2
  394. package/dist/x/has.min.mjs +2 -2
  395. package/dist/x/has.mjs +2 -2
  396. package/dist/x/identity.es.js +2 -2
  397. package/dist/x/identity.es.min.js +2 -2
  398. package/dist/x/identity.js +2 -2
  399. package/dist/x/identity.min.js +2 -2
  400. package/dist/x/identity.min.mjs +2 -2
  401. package/dist/x/identity.mjs +2 -2
  402. package/dist/x/includes.es.js +2 -2
  403. package/dist/x/includes.es.min.js +2 -2
  404. package/dist/x/includes.js +2 -2
  405. package/dist/x/includes.min.js +2 -2
  406. package/dist/x/includes.min.mjs +2 -2
  407. package/dist/x/includes.mjs +2 -2
  408. package/dist/x/isDeepEqual.es.js +2 -2
  409. package/dist/x/isDeepEqual.es.min.js +2 -2
  410. package/dist/x/isDeepEqual.js +2 -2
  411. package/dist/x/isDeepEqual.min.js +2 -2
  412. package/dist/x/isDeepEqual.min.mjs +2 -2
  413. package/dist/x/isDeepEqual.mjs +2 -2
  414. package/dist/x/isEmpty.es.js +2 -2
  415. package/dist/x/isEmpty.es.min.js +2 -2
  416. package/dist/x/isEmpty.js +2 -2
  417. package/dist/x/isEmpty.min.js +2 -2
  418. package/dist/x/isEmpty.min.mjs +2 -2
  419. package/dist/x/isEmpty.mjs +2 -2
  420. package/dist/x/isEqual.es.js +2 -2
  421. package/dist/x/isEqual.es.min.js +2 -2
  422. package/dist/x/isEqual.js +2 -2
  423. package/dist/x/isEqual.min.js +2 -2
  424. package/dist/x/isEqual.min.mjs +2 -2
  425. package/dist/x/isEqual.mjs +2 -2
  426. package/dist/x/isFunction.es.js +2 -2
  427. package/dist/x/isFunction.es.min.js +2 -2
  428. package/dist/x/isFunction.js +2 -2
  429. package/dist/x/isFunction.min.js +2 -2
  430. package/dist/x/isFunction.min.mjs +2 -2
  431. package/dist/x/isFunction.mjs +2 -2
  432. package/dist/x/isIn.es.js +2 -2
  433. package/dist/x/isIn.es.min.js +2 -2
  434. package/dist/x/isIn.js +2 -2
  435. package/dist/x/isIn.min.js +2 -2
  436. package/dist/x/isIn.min.mjs +2 -2
  437. package/dist/x/isIn.mjs +2 -2
  438. package/dist/x/isObject.es.js +2 -2
  439. package/dist/x/isObject.es.min.js +2 -2
  440. package/dist/x/isObject.js +2 -2
  441. package/dist/x/isObject.min.js +2 -2
  442. package/dist/x/isObject.min.mjs +2 -2
  443. package/dist/x/isObject.mjs +2 -2
  444. package/dist/x/isString.es.js +2 -2
  445. package/dist/x/isString.es.min.js +2 -2
  446. package/dist/x/isString.js +2 -2
  447. package/dist/x/isString.min.js +2 -2
  448. package/dist/x/isString.min.mjs +2 -2
  449. package/dist/x/isString.mjs +2 -2
  450. package/dist/x/keys.es.js +2 -2
  451. package/dist/x/keys.es.min.js +2 -2
  452. package/dist/x/keys.js +2 -2
  453. package/dist/x/keys.min.js +2 -2
  454. package/dist/x/keys.min.mjs +2 -2
  455. package/dist/x/keys.mjs +2 -2
  456. package/dist/x/last.es.js +2 -2
  457. package/dist/x/last.es.min.js +2 -2
  458. package/dist/x/last.js +2 -2
  459. package/dist/x/last.min.js +2 -2
  460. package/dist/x/last.min.mjs +2 -2
  461. package/dist/x/last.mjs +2 -2
  462. package/dist/x/maxBy.es.js +59 -6
  463. package/dist/x/maxBy.es.min.js +3 -3
  464. package/dist/x/maxBy.js +59 -6
  465. package/dist/x/maxBy.min.js +3 -3
  466. package/dist/x/maxBy.min.mjs +3 -3
  467. package/dist/x/maxBy.mjs +59 -6
  468. package/dist/x/noop.es.js +2 -2
  469. package/dist/x/noop.es.min.js +2 -2
  470. package/dist/x/noop.js +2 -2
  471. package/dist/x/noop.min.js +2 -2
  472. package/dist/x/noop.min.mjs +2 -2
  473. package/dist/x/noop.mjs +2 -2
  474. package/dist/x/pluck.es.js +32 -103
  475. package/dist/x/pluck.es.min.js +3 -3
  476. package/dist/x/pluck.js +32 -103
  477. package/dist/x/pluck.min.js +3 -3
  478. package/dist/x/pluck.min.mjs +3 -3
  479. package/dist/x/pluck.mjs +32 -103
  480. package/dist/x/prepend.es.js +2 -2
  481. package/dist/x/prepend.es.min.js +2 -2
  482. package/dist/x/prepend.js +2 -2
  483. package/dist/x/prepend.min.js +2 -2
  484. package/dist/x/prepend.min.mjs +2 -2
  485. package/dist/x/prepend.mjs +2 -2
  486. package/dist/x/size.es.js +2 -2
  487. package/dist/x/size.es.min.js +2 -2
  488. package/dist/x/size.js +2 -2
  489. package/dist/x/size.min.js +2 -2
  490. package/dist/x/size.min.mjs +2 -2
  491. package/dist/x/size.mjs +2 -2
  492. package/dist/x/trace.es.js +2 -9
  493. package/dist/x/trace.es.min.js +3 -3
  494. package/dist/x/trace.js +2 -9
  495. package/dist/x/trace.min.js +3 -3
  496. package/dist/x/trace.min.mjs +3 -3
  497. package/dist/x/trace.mjs +2 -9
  498. package/dist/x/unionWith.es.js +2 -2
  499. package/dist/x/unionWith.es.min.js +2 -2
  500. package/dist/x/unionWith.js +2 -2
  501. package/dist/x/unionWith.min.js +2 -2
  502. package/dist/x/unionWith.min.mjs +2 -2
  503. package/dist/x/unionWith.mjs +2 -2
  504. package/dist/x/uniq.es.js +2 -2
  505. package/dist/x/uniq.es.min.js +2 -2
  506. package/dist/x/uniq.js +2 -2
  507. package/dist/x/uniq.min.js +2 -2
  508. package/dist/x/uniq.min.mjs +2 -2
  509. package/dist/x/uniq.mjs +2 -2
  510. package/dist/x/unless.es.js +2 -2
  511. package/dist/x/unless.es.min.js +2 -2
  512. package/dist/x/unless.js +2 -2
  513. package/dist/x/unless.min.js +2 -2
  514. package/dist/x/unless.min.mjs +2 -2
  515. package/dist/x/unless.mjs +2 -2
  516. package/dist/x/values.es.js +2 -2
  517. package/dist/x/values.es.min.js +2 -2
  518. package/dist/x/values.js +2 -2
  519. package/dist/x/values.min.js +2 -2
  520. package/dist/x/values.min.mjs +2 -2
  521. package/dist/x/values.mjs +2 -2
  522. package/dist/x/when.es.js +2 -2
  523. package/dist/x/when.es.min.js +2 -2
  524. package/dist/x/when.js +2 -2
  525. package/dist/x/when.min.js +2 -2
  526. package/dist/x/when.min.mjs +2 -2
  527. package/dist/x/when.mjs +2 -2
  528. package/dist-test.js +9 -2025
  529. package/eq.js +21 -63
  530. package/es.js +746 -869
  531. package/every.js +94 -0
  532. package/filter.js +83 -125
  533. package/flatMap.js +105 -154
  534. package/forEach.js +82 -0
  535. package/get.js +44 -36
  536. package/global.js +6 -4
  537. package/gt.js +15 -58
  538. package/gte.js +14 -57
  539. package/index.js +746 -869
  540. package/lt.js +17 -60
  541. package/lte.js +14 -57
  542. package/map.js +153 -203
  543. package/memory-usage/reduce.js +2 -2
  544. package/not.js +30 -49
  545. package/omit.js +36 -13
  546. package/or.js +64 -41
  547. package/package.json +7 -7
  548. package/pick.js +52 -22
  549. package/pipe.js +27 -92
  550. package/reduce.js +114 -129
  551. package/rubico.js +10 -8
  552. package/set.js +60 -24
  553. package/some.js +105 -0
  554. package/switchCase.js +29 -25
  555. package/tap.js +15 -45
  556. package/test.js +847 -1083
  557. package/thunkify.js +11 -5
  558. package/transform.js +57 -81
  559. package/tryCatch.js +38 -32
  560. package/x/differenceWith.js +3 -3
  561. package/x/filterOut.test.js +6 -6
  562. package/x/flatten.js +1 -1
  563. package/x/flatten.test.js +0 -8
  564. package/x/index.js +0 -2
  565. package/x/pluck.js +18 -27
  566. package/x/pluck.test.js +3 -7
  567. package/x/timeInLoop.js +16 -25
  568. package/x/timeInLoop.test.js +8 -4
  569. package/any.js +0 -88
  570. package/dist/any.es.min.js +0 -7
  571. package/dist/any.min.js +0 -8
  572. package/dist/any.min.mjs +0 -7
  573. package/dist/fork.es.js +0 -159
  574. package/dist/fork.es.min.js +0 -7
  575. package/dist/fork.js +0 -166
  576. package/dist/fork.min.js +0 -8
  577. package/dist/fork.min.mjs +0 -7
  578. package/dist/fork.mjs +0 -159
  579. package/dist/x/forEach.es.min.js +0 -7
  580. package/dist/x/forEach.min.js +0 -8
  581. package/dist/x/forEach.min.mjs +0 -7
  582. package/fork.js +0 -91
  583. package/x/forEach.js +0 -93
  584. package/x/forEach.test.js +0 -218
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  586. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  588. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  589. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -0,0 +1,26 @@
1
+ const async = require('async')
2
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
3
+ const flatMap = require('../flatMap')
4
+
5
+ const asyncFlatMap = async.flatMap
6
+
7
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
8
+
9
+ suite.add('rubico flatMap', async () => {
10
+ await flatMap([1, 2, 3, 4, 5], async n => [n, n])
11
+ })
12
+
13
+ suite.add('rubico flatMap tacit', async () => {
14
+ await flatMap(async n => [n, n])([1, 2, 3, 4, 5])
15
+ })
16
+
17
+ suite.add('async flatMap', async () => {
18
+ await asyncFlatMap([1, 2, 3, 4, 5], async n => [n, n])
19
+ })
20
+
21
+ if (process.argv[1] == __filename) {
22
+ suite.on('caseBestRun', run => console.log(run.output))
23
+ suite.run()
24
+ }
25
+
26
+ module.exports = suite
@@ -1,48 +1,38 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const { flatMap } = require('..')
3
- const R = require('ramda')
4
1
  const _ = require('lodash')
5
2
  const _fp = require('lodash/fp')
3
+ const R = require('ramda')
4
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
5
+ const flatMap = require('../flatMap')
6
6
 
7
- /**
8
- * @name competitiveFlatMap
9
- *
10
- * @benchmark
11
- * flatMap(duplicate)(array): 1e+5: 69.215ms
12
- * R.chain(duplicate, array): 1e+5: 169.668ms
13
- * _fp.flatMap(duplicate, array): 1e+5: 85.848ms
14
- *
15
- * flatMap(identity)(array): 1e+5: 53.501ms
16
- * R.chain(identity, array): 1e+5: 160.813ms
17
- * _fp.flatMap(identity, array): 1e+5: 81.023ms
18
- */
19
-
20
- {
21
- const numbersArray = [1, 2, 3, 4, 5]
22
-
23
- const duplicateArray = value => [value, value]
24
-
25
- const identity = value => value
26
-
27
- // console.log(flatMap(duplicateArray)(numbersArray))
28
- // console.log(flatMap(identity)(numbersArray))
29
- // console.log(R.chain(duplicateArray, numbersArray))
30
- // console.log(R.chain(identity, numbersArray))
31
- // console.log(_fp.flatMap(duplicateArray, numbersArray))
32
- // console.log(_fp.flatMap(identity, numbersArray))
7
+ const lodashFlatMap = _.flatMap
8
+ const lodashFpFlatMap = _fp.flatMap
9
+ const ramdaFlatmap = R.chain
33
10
 
34
- const flatMapDuplicateArray = flatMap(duplicateArray)
11
+ const suite = new TimeInLoopSuite()
35
12
 
36
- // timeInLoop('flatMap(duplicate)(array)', 1e5, () => flatMap(duplicateArray)(numbersArray))
13
+ suite.add('rubico flatMap', () => {
14
+ flatMap([1, 2, 3, 4, 5], n => [n, n])
15
+ })
37
16
 
38
- // timeInLoop('R.chain(duplicate, array)', 1e5, () => R.chain(duplicateArray, numbersArray))
17
+ suite.add('rubico flatMap tacit', () => {
18
+ flatMap(n => [n, n])([1, 2, 3, 4, 5])
19
+ })
39
20
 
40
- // timeInLoop('_fp.flatMap(duplicate, array)', 1e5, () => _fp.flatMap(duplicateArray, numbersArray))
21
+ suite.add('lodash flatMap', () => {
22
+ lodashFlatMap([1, 2, 3, 4, 5], n => [n, n])
23
+ })
41
24
 
42
- // timeInLoop('flatMap(identity)(array)', 1e5, () => flatMap(identity)(numbersArray))
25
+ suite.add('lodash/fp flatMap', () => {
26
+ lodashFpFlatMap(n => [n, n])([1, 2, 3, 4, 5])
27
+ })
43
28
 
44
- // timeInLoop('R.chain(identity, array)', 1e5, () => R.chain(identity, numbersArray))
29
+ suite.add('ramda flatMap', () => {
30
+ ramdaFlatmap(n => [n, n])([1, 2, 3, 4, 5])
31
+ })
45
32
 
46
- // timeInLoop('_fp.flatMap(identity, array)', 1e5, () => _fp.flatMap(identity, numbersArray))
33
+ if (process.argv[1] == __filename) {
34
+ suite.on('caseBestRun', run => console.log(run.output))
35
+ suite.run()
47
36
  }
48
37
 
38
+ module.exports = suite
@@ -0,0 +1,19 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const get = require('../get')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico get', async () => {
7
+ await get({}, 'a', async () => 1)
8
+ })
9
+
10
+ suite.add('rubico get tacit', async () => {
11
+ await get('a', async () => 1)({})
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
package/benchmarks/get.js CHANGED
@@ -1,44 +1,39 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('rubico')
1
+ const Bluebird = require('bluebird')
3
2
  const _ = require('lodash')
4
3
  const _fp = require('lodash/fp')
5
4
  const R = require('ramda')
5
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
6
+ const get = require('../get')
6
7
 
7
- /**
8
- * @name getRace
9
- *
10
- * @benchmark
11
- * rubico.get('a.b.c'): 1e+6: 76.35ms
12
- * _.get('a.b.c'): 1e+6: 223.564ms
13
- * rubico.get('a'): 1e+6: 31.995ms
14
- * _.get('a'): 1e+6: 49.2ms
15
- * R.prop('a'): 1e+6: 228.473ms
16
- * rubico.get('[0][0][0][0][0]'): 1e+6: 76.845ms
17
- * _.get('[0][0][0][0][0]'): 1e+6: 219.156ms
18
- */
8
+ const lodashGet = _.get
9
+ const lodashFpGet = _fp.get
10
+ const ramdaProp = R.prop
19
11
 
20
- {
21
- const nestedABC = { a: { b: { c: 1 } } }
22
- const nestedArray5 = [[[[['hey']]]]]
12
+ const suite = new TimeInLoopSuite()
23
13
 
24
- // console.log(rubico.get('a.b.c')(nestedABC))
25
- // console.log(_.get(nestedABC, 'a.b.c'))
26
- // console.log(rubico.get('a')(nestedABC))
27
- // console.log(_.get(nestedABC, 'a'))
28
- // console.log(rubico.get('[0][0][0][0][0]')(nestedArray5))
29
- // console.log(_.get(nestedArray5, '[0][0][0][0][0]'))
14
+ suite.add('rubico get', () => {
15
+ get({ a: 1 }, 'a')
16
+ })
30
17
 
31
- // timeInLoop('rubico.get(\'a.b.c\')', 1e6, () => rubico.get('a.b.c')(nestedABC))
18
+ suite.add('rubico get tacit', () => {
19
+ get('a')({ a: 1 })
20
+ })
32
21
 
33
- // timeInLoop('_.get(\'a.b.c\')', 1e6, () => _.get(nestedABC, 'a.b.c'))
22
+ suite.add('lodash get', () => {
23
+ lodashGet({ a: 1 }, 'a')
24
+ })
34
25
 
35
- // timeInLoop('rubico.get(\'a\')', 1e6, () => rubico.get('a')(nestedABC))
26
+ suite.add('lodash/fp get', () => {
27
+ lodashFpGet('a')({ a: 1 })
28
+ })
36
29
 
37
- // timeInLoop('_.get(\'a\')', 1e6, () => _.get(nestedABC, 'a'))
30
+ suite.add('ramda get', () => {
31
+ ramdaProp('a')({ a: 1 })
32
+ })
38
33
 
39
- // timeInLoop('R.prop(\'a\')', 1e6, () => R.prop('a', nestedABC))
40
-
41
- // timeInLoop('rubico.get(\'[0][0][0][0][0]\')', 1e6, () => rubico.get('[0][0][0][0][0]')(nestedArray5))
42
-
43
- // timeInLoop('_.get(\'[0][0][0][0][0]\')', 1e6, () => _.get(nestedArray5, '[0][0][0][0][0]'))
34
+ if (process.argv[1] == __filename) {
35
+ suite.on('caseBestRun', run => console.log(run.output))
36
+ suite.run()
44
37
  }
38
+
39
+ module.exports = suite
@@ -0,0 +1,23 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const gt = require('../gt')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico gt Promises', async () => {
7
+ await gt(1, Promise.resolve(1))
8
+ })
9
+
10
+ suite.add('rubico gt left value right resolver', async () => {
11
+ await gt({ a: 1 }, 1, async value => value.a)
12
+ })
13
+
14
+ suite.add('rubico gt left resolver right resolver', async () => {
15
+ await gt({ 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/gt.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 gt = require('../gt')
5
3
 
6
- /**
7
- * @name gt
8
- *
9
- * @benchmark
10
- * rubico.gt(0, 0): 1e+7: 12.52ms
11
- * _.gt(0, 0): 1e+7: 13.934ms
12
- * R.gt(1, 0): 1e+7: 18.437ms
13
- */
4
+ const suite = new TimeInLoopSuite()
14
5
 
15
- const rubicoGt = rubico.gt(1, 0)
6
+ suite.add('rubico gt primitive', () => {
7
+ gt(1, 1)
8
+ })
16
9
 
17
- // console.log(rubicoGt())
18
- // console.log(_.gt(1, 0))
19
- // console.log(R.gt(1, 0))
10
+ suite.add('rubico gt left value right resolver', () => {
11
+ gt({ a: 1 }, 1, value => value.a)
12
+ })
20
13
 
21
- // timeInLoop('rubico.gt(1, 0)', 1e7, () => rubicoGt())
14
+ suite.add('rubico gt left resolver right resolver', () => {
15
+ gt({ a: 1 }, value => value.a, value => value.a)
16
+ })
22
17
 
23
- // timeInLoop('_.gt(1, 0)', 1e7, () => _.gt(1, 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.gt(1, 0)', 1e7, () => R.gt(1, 0))
23
+ module.exports = suite
@@ -0,0 +1,23 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const gte = require('../gte')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico gte Promises', async () => {
7
+ await gte(1, Promise.resolve(1))
8
+ })
9
+
10
+ suite.add('rubico gte left value right resolver', async () => {
11
+ await gte({ a: 1 }, 1, async value => value.a)
12
+ })
13
+
14
+ suite.add('rubico gte left resolver right resolver', async () => {
15
+ await gte({ 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/gte.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 gte = require('../gte')
5
3
 
6
- /**
7
- * @name gte
8
- *
9
- * @benchmark
10
- * rubico.gte(1, 0): 1e+7: 12.529ms
11
- * _.gte(1, 0): 1e+7: 13.886ms
12
- * R.gte(1, 0): 1e+7: 18.766ms
13
- */
4
+ const suite = new TimeInLoopSuite()
14
5
 
15
- const rubicoGte = rubico.gte(1, 0)
6
+ suite.add('rubico gte primitive', () => {
7
+ gte(1, 1)
8
+ })
16
9
 
17
- // console.log(rubicoGte())
18
- // console.log(_.gte(1, 0))
19
- // console.log(R.gte(1, 0))
10
+ suite.add('rubico gte left value right resolver', () => {
11
+ gte({ a: 1 }, 1, value => value.a)
12
+ })
20
13
 
21
- // timeInLoop('rubico.gte(1, 0)', 1e7, () => rubicoGte())
14
+ suite.add('rubico gte left resolver right resolver', () => {
15
+ gte({ a: 1 }, value => value.a, value => value.a)
16
+ })
22
17
 
23
- // timeInLoop('_.gte(1, 0)', 1e7, () => _.gte(1, 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.gte(1, 0)', 1e7, () => R.gte(1, 0))
23
+ module.exports = suite
@@ -0,0 +1,23 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const lt = require('../lt')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico lt Promises', async () => {
7
+ await lt(1, Promise.resolve(1))
8
+ })
9
+
10
+ suite.add('rubico lt left value right resolver', async () => {
11
+ await lt({ a: 1 }, 1, async value => value.a)
12
+ })
13
+
14
+ suite.add('rubico lt left resolver right resolver', async () => {
15
+ await lt({ 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/lt.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 lt = require('../lt')
5
3
 
6
- /**
7
- * @name lt
8
- *
9
- * @benchmark
10
- * rubico.lt(1, 0): 1e+7: 12.514ms
11
- * _.lt(1, 0): 1e+7: 14.042ms
12
- * R.lt(1, 0): 1e+7: 18.409ms
13
- */
4
+ const suite = new TimeInLoopSuite()
14
5
 
15
- const rubicoLt = rubico.lt(1, 0)
6
+ suite.add('rubico lt primitive', () => {
7
+ lt(1, 1)
8
+ })
16
9
 
17
- // console.log(rubicoLt())
18
- // console.log(_.lt(1, 0))
19
- // console.log(R.lt(1, 0))
10
+ suite.add('rubico lt left value right resolver', () => {
11
+ lt({ a: 1 }, 1, value => value.a)
12
+ })
20
13
 
21
- // timeInLoop('rubico.lt(1, 0)', 1e7, () => rubicoLt())
14
+ suite.add('rubico lt left resolver right resolver', () => {
15
+ lt({ a: 1 }, value => value.a, value => value.a)
16
+ })
22
17
 
23
- // timeInLoop('_.lt(1, 0)', 1e7, () => _.lt(1, 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.lt(1, 0)', 1e7, () => R.lt(1, 0))
23
+ module.exports = suite
@@ -0,0 +1,23 @@
1
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
2
+ const lte = require('../lte')
3
+
4
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
5
+
6
+ suite.add('rubico lte Promises', async () => {
7
+ await lte(1, Promise.resolve(1))
8
+ })
9
+
10
+ suite.add('rubico lte left value right resolver', async () => {
11
+ await lte({ a: 1 }, 1, async value => value.a)
12
+ })
13
+
14
+ suite.add('rubico lte left resolver right resolver', async () => {
15
+ await lte({ 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/lte.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 lte = require('../lte')
5
3
 
6
- /**
7
- * @name lte
8
- *
9
- * @benchmark
10
- * rubico.lte(1, 0): 1e+7: 12.537ms
11
- * _.lte(1, 0): 1e+7: 14.026ms
12
- * R.lte(1, 0): 1e+7: 17.259ms
13
- */
4
+ const suite = new TimeInLoopSuite()
14
5
 
15
- const rubicoLte = rubico.lte(1, 0)
6
+ suite.add('rubico lte primitive', () => {
7
+ lte(1, 1)
8
+ })
16
9
 
17
- // console.log(rubicoLte())
18
- // console.log(_.lte(1, 0))
19
- // console.log(R.lte(1, 0))
10
+ suite.add('rubico lte left value right resolver', () => {
11
+ lte({ a: 1 }, 1, value => value.a)
12
+ })
20
13
 
21
- // timeInLoop('rubico.lte(1, 0)', 1e7, () => rubicoLte())
14
+ suite.add('rubico lte left resolver right resolver', () => {
15
+ lte({ a: 1 }, value => value.a, value => value.a)
16
+ })
22
17
 
23
- // timeInLoop('_.lte(1, 0)', 1e7, () => _.lte(1, 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.lte(1, 0)', 1e7, () => R.lte(1, 0))
23
+ module.exports = suite
@@ -0,0 +1,43 @@
1
+ const Bluebird = require('bluebird')
2
+ const async = require('async')
3
+ const _ = require('lodash')
4
+ const _fp = require('lodash/fp')
5
+ const R = require('ramda')
6
+ const map = require('../map')
7
+ const TimeInLoopSuite = require('../_internal/TimeInLoopSuite')
8
+ const arrayMap = require('../_internal/arrayMap')
9
+
10
+ const asyncMap = async.map
11
+ const lodashMap = _.map
12
+ const lodashFpMap = _fp.map
13
+ const ramdaMap = R.map
14
+ const bluebirdMap = Bluebird.map
15
+
16
+ const suite = new TimeInLoopSuite({ async: true, loopCount: 1e5 })
17
+
18
+ suite.add('rubico map', async () => {
19
+ await map([1, 2, 3, 4, 5], async value => value + 1)
20
+ })
21
+
22
+ suite.add('rubico map tacit', async () => {
23
+ await map(async value => value + 1)([1, 2, 3, 4, 5])
24
+ })
25
+
26
+ suite.add('async map', async () => {
27
+ await asyncMap([1, 2, 3, 4, 5], async value => value + 1)
28
+ })
29
+
30
+ suite.add('bluebird map', async () => {
31
+ await bluebirdMap([1, 2, 3, 4, 5], async value => value + 1)
32
+ })
33
+
34
+ suite.add('vanilla map and Promise.all', async () => {
35
+ await Promise.all([1, 2, 3, 4, 5].map(async value => value + 1))
36
+ })
37
+
38
+ if (process.argv[1] == __filename) {
39
+ suite.on('caseBestRun', run => console.log(run.output))
40
+ suite.run()
41
+ }
42
+
43
+ module.exports = suite