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
@@ -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