rubico 1.9.7 → 2.0.1

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 (593) 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/README.md +158 -81
  8. package/Transducer.js +75 -26
  9. package/Transducer.test.js +117 -0
  10. package/_internal/ComparisonOperator.js +68 -0
  11. package/_internal/File.js +41 -0
  12. package/_internal/FlatMappingAsyncIterator.js +4 -4
  13. package/_internal/FlatMappingIterator.js +1 -1
  14. package/_internal/TimeInLoopSuite.js +138 -0
  15. package/_internal/areAnyValuesPromises.js +23 -0
  16. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  17. package/_internal/arrayExtend.js +3 -2
  18. package/_internal/arrayFilter.js +3 -4
  19. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  20. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  21. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  22. package/_internal/curry4.test.js +25 -0
  23. package/_internal/curry5.test.js +29 -0
  24. package/_internal/curryArgs2.js +43 -0
  25. package/_internal/curryArgs3.test.js +21 -0
  26. package/_internal/curryArgs4.js +65 -0
  27. package/_internal/curryArgs4.test.js +25 -0
  28. package/_internal/equals.js +13 -0
  29. package/_internal/findAllFilePaths.js +22 -0
  30. package/_internal/funcApply.js +2 -0
  31. package/_internal/funcCall.js +14 -0
  32. package/_internal/functionArrayAll.js +26 -0
  33. package/_internal/functionArrayAllSeries.js +55 -0
  34. package/_internal/functionObjectAll.js +32 -0
  35. package/_internal/genericReduce.js +4 -22
  36. package/_internal/genericTransform.js +15 -15
  37. package/_internal/improvedGenericTransform.js +93 -0
  38. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  39. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  40. package/_internal/leftResolverRightResolverCompare.js +19 -0
  41. package/_internal/leftResolverRightValueCompare.js +16 -0
  42. package/_internal/leftValueRightResolverCompare.js +16 -0
  43. package/_internal/objectReduce.js +0 -1
  44. package/_internal/pathResolve.js +6 -0
  45. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  46. package/_internal/reducerFlatMap.js +4 -4
  47. package/_internal/reducerFlatten.js +1 -1
  48. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  49. package/_internal/timeInLoop.js +37 -0
  50. package/_internal/timeInLoop.test.js +18 -0
  51. package/_internal/timeInLoopAsync.js +35 -0
  52. package/_internal/timeInLoopAsync.test.js +22 -0
  53. package/all.js +106 -40
  54. package/and.js +54 -36
  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 +18 -8
  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/build +472 -0
  136. package/compose.js +46 -0
  137. package/dist/Transducer.es.js +481 -0
  138. package/dist/Transducer.es.min.js +7 -0
  139. package/dist/Transducer.js +488 -0
  140. package/dist/Transducer.min.js +8 -0
  141. package/dist/Transducer.mjs +481 -0
  142. package/dist/__.es.js +2 -2
  143. package/dist/__.es.min.js +2 -2
  144. package/dist/__.js +2 -2
  145. package/dist/__.min.js +2 -2
  146. package/dist/__.mjs +2 -2
  147. package/dist/all.es.js +173 -92
  148. package/dist/all.es.min.js +3 -3
  149. package/dist/all.js +173 -92
  150. package/dist/all.min.js +3 -3
  151. package/dist/all.mjs +173 -92
  152. package/dist/always.es.js +2 -2
  153. package/dist/always.es.min.js +2 -2
  154. package/dist/always.js +2 -2
  155. package/dist/always.min.js +2 -2
  156. package/dist/always.mjs +2 -2
  157. package/dist/and.es.js +101 -32
  158. package/dist/and.es.min.js +3 -3
  159. package/dist/and.js +101 -32
  160. package/dist/and.min.js +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.mjs +37 -10
  167. package/dist/compose.es.js +71 -0
  168. package/dist/compose.es.min.js +7 -0
  169. package/dist/compose.js +78 -0
  170. package/dist/compose.min.js +8 -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.mjs +2 -2
  177. package/dist/eq.es.js +172 -49
  178. package/dist/eq.es.min.js +3 -3
  179. package/dist/eq.js +172 -49
  180. package/dist/eq.min.js +3 -3
  181. package/dist/eq.mjs +172 -49
  182. package/dist/every.es.js +194 -0
  183. package/dist/every.es.min.js +7 -0
  184. package/dist/every.js +201 -0
  185. package/dist/every.min.js +8 -0
  186. package/dist/every.mjs +194 -0
  187. package/dist/filter.es.js +14 -108
  188. package/dist/filter.es.min.js +3 -3
  189. package/dist/filter.js +14 -108
  190. package/dist/filter.min.js +3 -3
  191. package/dist/filter.mjs +14 -108
  192. package/dist/flatMap.es.js +27 -214
  193. package/dist/flatMap.es.min.js +3 -3
  194. package/dist/flatMap.js +27 -214
  195. package/dist/flatMap.min.js +3 -3
  196. package/dist/flatMap.mjs +27 -214
  197. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  198. package/dist/forEach.es.min.js +7 -0
  199. package/dist/{x/forEach.js → forEach.js} +52 -70
  200. package/dist/forEach.min.js +8 -0
  201. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  202. package/dist/get.es.js +60 -5
  203. package/dist/get.es.min.js +3 -3
  204. package/dist/get.js +60 -5
  205. package/dist/get.min.js +3 -3
  206. package/dist/get.mjs +60 -5
  207. package/dist/gt.es.js +171 -48
  208. package/dist/gt.es.min.js +3 -3
  209. package/dist/gt.js +171 -48
  210. package/dist/gt.min.js +3 -3
  211. package/dist/gt.mjs +171 -48
  212. package/dist/gte.es.js +171 -48
  213. package/dist/gte.es.min.js +3 -3
  214. package/dist/gte.js +171 -48
  215. package/dist/gte.min.js +3 -3
  216. package/dist/gte.mjs +171 -48
  217. package/dist/lt.es.js +171 -48
  218. package/dist/lt.es.min.js +3 -3
  219. package/dist/lt.js +171 -48
  220. package/dist/lt.min.js +3 -3
  221. package/dist/lt.mjs +171 -48
  222. package/dist/lte.es.js +171 -48
  223. package/dist/lte.es.min.js +3 -3
  224. package/dist/lte.js +171 -48
  225. package/dist/lte.min.js +3 -3
  226. package/dist/lte.mjs +171 -48
  227. package/dist/map.es.js +12 -101
  228. package/dist/map.es.min.js +3 -3
  229. package/dist/map.js +12 -101
  230. package/dist/map.min.js +3 -3
  231. package/dist/map.mjs +12 -101
  232. package/dist/not.es.js +75 -14
  233. package/dist/not.es.min.js +3 -3
  234. package/dist/not.js +75 -14
  235. package/dist/not.min.js +3 -3
  236. package/dist/not.mjs +75 -14
  237. package/dist/omit.es.js +7 -2
  238. package/dist/omit.es.min.js +3 -3
  239. package/dist/omit.js +7 -2
  240. package/dist/omit.min.js +3 -3
  241. package/dist/omit.mjs +7 -2
  242. package/dist/or.es.js +99 -31
  243. package/dist/or.es.min.js +3 -3
  244. package/dist/or.js +99 -31
  245. package/dist/or.min.js +3 -3
  246. package/dist/or.mjs +99 -31
  247. package/dist/pick.es.js +8 -3
  248. package/dist/pick.es.min.js +3 -3
  249. package/dist/pick.js +8 -3
  250. package/dist/pick.min.js +3 -3
  251. package/dist/pick.mjs +8 -3
  252. package/dist/pipe.es.js +42 -46
  253. package/dist/pipe.es.min.js +3 -3
  254. package/dist/pipe.js +42 -46
  255. package/dist/pipe.min.js +3 -3
  256. package/dist/pipe.mjs +42 -46
  257. package/dist/reduce.es.js +52 -94
  258. package/dist/reduce.es.min.js +3 -3
  259. package/dist/reduce.js +52 -94
  260. package/dist/reduce.min.js +3 -3
  261. package/dist/reduce.mjs +52 -94
  262. package/dist/rubico.es.js +762 -883
  263. package/dist/rubico.es.min.js +3 -3
  264. package/dist/rubico.global.js +2794 -0
  265. package/dist/rubico.global.min.js +8 -0
  266. package/dist/rubico.js +739 -869
  267. package/dist/rubico.min.js +3 -3
  268. package/dist/rubico.mjs +762 -883
  269. package/dist/set.es.js +18 -3
  270. package/dist/set.es.min.js +3 -3
  271. package/dist/set.js +18 -3
  272. package/dist/set.min.js +3 -3
  273. package/dist/set.mjs +18 -3
  274. package/dist/{any.js → some.es.js} +64 -54
  275. package/dist/some.es.min.js +7 -0
  276. package/dist/{any.mjs → some.js} +72 -48
  277. package/dist/some.min.js +8 -0
  278. package/dist/{any.es.js → some.mjs} +65 -48
  279. package/dist/switchCase.es.js +55 -5
  280. package/dist/switchCase.es.min.js +3 -3
  281. package/dist/switchCase.js +55 -5
  282. package/dist/switchCase.min.js +3 -3
  283. package/dist/switchCase.mjs +55 -5
  284. package/dist/tap.es.js +2 -9
  285. package/dist/tap.es.min.js +3 -3
  286. package/dist/tap.js +2 -9
  287. package/dist/tap.min.js +3 -3
  288. package/dist/tap.mjs +2 -9
  289. package/dist/thunkify.es.js +45 -2
  290. package/dist/thunkify.es.min.js +3 -3
  291. package/dist/thunkify.js +45 -2
  292. package/dist/thunkify.min.js +3 -3
  293. package/dist/thunkify.mjs +45 -2
  294. package/dist/transform.es.js +35 -71
  295. package/dist/transform.es.min.js +3 -3
  296. package/dist/transform.js +35 -71
  297. package/dist/transform.min.js +3 -3
  298. package/dist/transform.mjs +35 -71
  299. package/dist/tryCatch.es.js +33 -17
  300. package/dist/tryCatch.es.min.js +3 -3
  301. package/dist/tryCatch.js +33 -17
  302. package/dist/tryCatch.min.js +3 -3
  303. package/dist/tryCatch.mjs +33 -17
  304. package/dist/x/append.es.js +2 -2
  305. package/dist/x/append.es.min.js +2 -2
  306. package/dist/x/append.js +2 -2
  307. package/dist/x/append.min.js +2 -2
  308. package/dist/x/append.mjs +2 -2
  309. package/dist/x/callProp.es.js +2 -2
  310. package/dist/x/callProp.es.min.js +2 -2
  311. package/dist/x/callProp.js +2 -2
  312. package/dist/x/callProp.min.js +2 -2
  313. package/dist/x/callProp.mjs +2 -2
  314. package/dist/x/defaultsDeep.es.js +2 -2
  315. package/dist/x/defaultsDeep.es.min.js +2 -2
  316. package/dist/x/defaultsDeep.js +2 -2
  317. package/dist/x/defaultsDeep.min.js +2 -2
  318. package/dist/x/defaultsDeep.mjs +2 -2
  319. package/dist/x/differenceWith.es.js +7 -7
  320. package/dist/x/differenceWith.es.min.js +3 -3
  321. package/dist/x/differenceWith.js +7 -7
  322. package/dist/x/differenceWith.min.js +2 -2
  323. package/dist/x/differenceWith.mjs +7 -7
  324. package/dist/x/filterOut.es.js +60 -117
  325. package/dist/x/filterOut.es.min.js +3 -3
  326. package/dist/x/filterOut.js +60 -117
  327. package/dist/x/filterOut.min.js +3 -3
  328. package/dist/x/filterOut.mjs +60 -117
  329. package/dist/x/find.es.js +2 -2
  330. package/dist/x/find.es.min.js +2 -2
  331. package/dist/x/find.js +2 -2
  332. package/dist/x/find.min.js +2 -2
  333. package/dist/x/find.mjs +2 -2
  334. package/dist/x/findIndex.es.js +2 -2
  335. package/dist/x/findIndex.es.min.js +2 -2
  336. package/dist/x/findIndex.js +2 -2
  337. package/dist/x/findIndex.min.js +2 -2
  338. package/dist/x/findIndex.mjs +2 -2
  339. package/dist/x/first.es.js +2 -2
  340. package/dist/x/first.es.min.js +2 -2
  341. package/dist/x/first.js +2 -2
  342. package/dist/x/first.min.js +2 -2
  343. package/dist/x/first.mjs +2 -2
  344. package/dist/x/flatten.es.js +20 -207
  345. package/dist/x/flatten.es.min.js +3 -3
  346. package/dist/x/flatten.js +20 -207
  347. package/dist/x/flatten.min.js +3 -3
  348. package/dist/x/flatten.mjs +20 -207
  349. package/dist/x/groupBy.es.js +52 -94
  350. package/dist/x/groupBy.es.min.js +3 -3
  351. package/dist/x/groupBy.js +52 -94
  352. package/dist/x/groupBy.min.js +3 -3
  353. package/dist/x/groupBy.mjs +52 -94
  354. package/dist/x/has.es.js +2 -2
  355. package/dist/x/has.es.min.js +2 -2
  356. package/dist/x/has.js +2 -2
  357. package/dist/x/has.min.js +2 -2
  358. package/dist/x/has.mjs +2 -2
  359. package/dist/x/identity.es.js +2 -2
  360. package/dist/x/identity.es.min.js +2 -2
  361. package/dist/x/identity.js +2 -2
  362. package/dist/x/identity.min.js +2 -2
  363. package/dist/x/identity.mjs +2 -2
  364. package/dist/x/includes.es.js +2 -2
  365. package/dist/x/includes.es.min.js +2 -2
  366. package/dist/x/includes.js +2 -2
  367. package/dist/x/includes.min.js +2 -2
  368. package/dist/x/includes.mjs +2 -2
  369. package/dist/x/isDeepEqual.es.js +2 -2
  370. package/dist/x/isDeepEqual.es.min.js +2 -2
  371. package/dist/x/isDeepEqual.js +2 -2
  372. package/dist/x/isDeepEqual.min.js +2 -2
  373. package/dist/x/isDeepEqual.mjs +2 -2
  374. package/dist/x/isEmpty.es.js +2 -2
  375. package/dist/x/isEmpty.es.min.js +2 -2
  376. package/dist/x/isEmpty.js +2 -2
  377. package/dist/x/isEmpty.min.js +2 -2
  378. package/dist/x/isEmpty.mjs +2 -2
  379. package/dist/x/isEqual.es.js +2 -2
  380. package/dist/x/isEqual.es.min.js +2 -2
  381. package/dist/x/isEqual.js +2 -2
  382. package/dist/x/isEqual.min.js +2 -2
  383. package/dist/x/isEqual.mjs +2 -2
  384. package/dist/x/isFunction.es.js +2 -2
  385. package/dist/x/isFunction.es.min.js +2 -2
  386. package/dist/x/isFunction.js +2 -2
  387. package/dist/x/isFunction.min.js +2 -2
  388. package/dist/x/isFunction.mjs +2 -2
  389. package/dist/x/isIn.es.js +2 -2
  390. package/dist/x/isIn.es.min.js +2 -2
  391. package/dist/x/isIn.js +2 -2
  392. package/dist/x/isIn.min.js +2 -2
  393. package/dist/x/isIn.mjs +2 -2
  394. package/dist/x/isObject.es.js +2 -2
  395. package/dist/x/isObject.es.min.js +2 -2
  396. package/dist/x/isObject.js +2 -2
  397. package/dist/x/isObject.min.js +2 -2
  398. package/dist/x/isObject.mjs +2 -2
  399. package/dist/x/isString.es.js +2 -2
  400. package/dist/x/isString.es.min.js +2 -2
  401. package/dist/x/isString.js +2 -2
  402. package/dist/x/isString.min.js +2 -2
  403. package/dist/x/isString.mjs +2 -2
  404. package/dist/x/keys.es.js +2 -2
  405. package/dist/x/keys.es.min.js +2 -2
  406. package/dist/x/keys.js +2 -2
  407. package/dist/x/keys.min.js +2 -2
  408. package/dist/x/keys.mjs +2 -2
  409. package/dist/x/last.es.js +2 -2
  410. package/dist/x/last.es.min.js +2 -2
  411. package/dist/x/last.js +2 -2
  412. package/dist/x/last.min.js +2 -2
  413. package/dist/x/last.mjs +2 -2
  414. package/dist/x/maxBy.es.js +59 -6
  415. package/dist/x/maxBy.es.min.js +3 -3
  416. package/dist/x/maxBy.js +59 -6
  417. package/dist/x/maxBy.min.js +3 -3
  418. package/dist/x/maxBy.mjs +59 -6
  419. package/dist/x/noop.es.js +2 -2
  420. package/dist/x/noop.es.min.js +2 -2
  421. package/dist/x/noop.js +2 -2
  422. package/dist/x/noop.min.js +2 -2
  423. package/dist/x/noop.mjs +2 -2
  424. package/dist/x/pluck.es.js +32 -103
  425. package/dist/x/pluck.es.min.js +3 -3
  426. package/dist/x/pluck.js +32 -103
  427. package/dist/x/pluck.min.js +3 -3
  428. package/dist/x/pluck.mjs +32 -103
  429. package/dist/x/prepend.es.js +2 -2
  430. package/dist/x/prepend.es.min.js +2 -2
  431. package/dist/x/prepend.js +2 -2
  432. package/dist/x/prepend.min.js +2 -2
  433. package/dist/x/prepend.mjs +2 -2
  434. package/dist/x/size.es.js +2 -2
  435. package/dist/x/size.es.min.js +2 -2
  436. package/dist/x/size.js +2 -2
  437. package/dist/x/size.min.js +2 -2
  438. package/dist/x/size.mjs +2 -2
  439. package/dist/x/trace.es.js +2 -9
  440. package/dist/x/trace.es.min.js +3 -3
  441. package/dist/x/trace.js +2 -9
  442. package/dist/x/trace.min.js +3 -3
  443. package/dist/x/trace.mjs +2 -9
  444. package/dist/x/unionWith.es.js +2 -2
  445. package/dist/x/unionWith.es.min.js +2 -2
  446. package/dist/x/unionWith.js +2 -2
  447. package/dist/x/unionWith.min.js +2 -2
  448. package/dist/x/unionWith.mjs +2 -2
  449. package/dist/x/uniq.es.js +2 -2
  450. package/dist/x/uniq.es.min.js +2 -2
  451. package/dist/x/uniq.js +2 -2
  452. package/dist/x/uniq.min.js +2 -2
  453. package/dist/x/uniq.mjs +2 -2
  454. package/dist/x/unless.es.js +2 -2
  455. package/dist/x/unless.es.min.js +2 -2
  456. package/dist/x/unless.js +2 -2
  457. package/dist/x/unless.min.js +2 -2
  458. package/dist/x/unless.mjs +2 -2
  459. package/dist/x/values.es.js +2 -2
  460. package/dist/x/values.es.min.js +2 -2
  461. package/dist/x/values.js +2 -2
  462. package/dist/x/values.min.js +2 -2
  463. package/dist/x/values.mjs +2 -2
  464. package/dist/x/when.es.js +2 -2
  465. package/dist/x/when.es.min.js +2 -2
  466. package/dist/x/when.js +2 -2
  467. package/dist/x/when.min.js +2 -2
  468. package/dist/x/when.mjs +2 -2
  469. package/dist-test.js +31 -2042
  470. package/eq.js +21 -63
  471. package/es.js +739 -869
  472. package/every.js +94 -0
  473. package/filter.js +23 -91
  474. package/flatMap.js +75 -70
  475. package/forEach.js +82 -0
  476. package/get.js +23 -6
  477. package/global.js +6 -4
  478. package/gt.js +15 -58
  479. package/gte.js +14 -57
  480. package/index.js +739 -869
  481. package/lt.js +17 -60
  482. package/lte.js +14 -57
  483. package/map.js +9 -94
  484. package/memory-usage/reduce.js +2 -2
  485. package/not.js +27 -45
  486. package/omit.js +4 -0
  487. package/or.js +50 -33
  488. package/package.json +7 -7
  489. package/pick.js +5 -1
  490. package/pipe.js +13 -50
  491. package/reduce.js +42 -51
  492. package/rubico.js +22 -11
  493. package/set.js +43 -10
  494. package/some.js +105 -0
  495. package/switchCase.js +13 -3
  496. package/tap.js +0 -24
  497. package/test.js +847 -1096
  498. package/thunkify.js +9 -0
  499. package/tmp.js +1 -0
  500. package/transform.js +31 -16
  501. package/tryCatch.js +19 -15
  502. package/x/differenceWith.js +3 -3
  503. package/x/filterOut.test.js +6 -6
  504. package/x/flatten.js +1 -1
  505. package/x/flatten.test.js +0 -8
  506. package/x/index.js +0 -2
  507. package/x/pluck.js +18 -27
  508. package/x/pluck.test.js +3 -7
  509. package/x/timeInLoop.js +16 -25
  510. package/x/timeInLoop.test.js +8 -4
  511. package/any.js +0 -82
  512. package/dist/__.min.mjs +0 -7
  513. package/dist/all.min.mjs +0 -7
  514. package/dist/always.min.mjs +0 -7
  515. package/dist/and.min.mjs +0 -7
  516. package/dist/any.es.min.js +0 -7
  517. package/dist/any.min.js +0 -8
  518. package/dist/any.min.mjs +0 -7
  519. package/dist/assign.min.mjs +0 -7
  520. package/dist/curry.min.mjs +0 -7
  521. package/dist/eq.min.mjs +0 -7
  522. package/dist/filter.min.mjs +0 -7
  523. package/dist/flatMap.min.mjs +0 -7
  524. package/dist/fork.es.js +0 -159
  525. package/dist/fork.es.min.js +0 -7
  526. package/dist/fork.js +0 -166
  527. package/dist/fork.min.js +0 -8
  528. package/dist/fork.min.mjs +0 -7
  529. package/dist/fork.mjs +0 -159
  530. package/dist/get.min.mjs +0 -7
  531. package/dist/gt.min.mjs +0 -7
  532. package/dist/gte.min.mjs +0 -7
  533. package/dist/lt.min.mjs +0 -7
  534. package/dist/lte.min.mjs +0 -7
  535. package/dist/map.min.mjs +0 -7
  536. package/dist/not.min.mjs +0 -7
  537. package/dist/omit.min.mjs +0 -7
  538. package/dist/or.min.mjs +0 -7
  539. package/dist/pick.min.mjs +0 -7
  540. package/dist/pipe.min.mjs +0 -7
  541. package/dist/reduce.min.mjs +0 -7
  542. package/dist/rubico.min.mjs +0 -7
  543. package/dist/set.min.mjs +0 -7
  544. package/dist/switchCase.min.mjs +0 -7
  545. package/dist/tap.min.mjs +0 -7
  546. package/dist/thunkify.min.mjs +0 -7
  547. package/dist/transform.min.mjs +0 -7
  548. package/dist/tryCatch.min.mjs +0 -7
  549. package/dist/x/append.min.mjs +0 -7
  550. package/dist/x/callProp.min.mjs +0 -7
  551. package/dist/x/defaultsDeep.min.mjs +0 -7
  552. package/dist/x/differenceWith.min.mjs +0 -7
  553. package/dist/x/filterOut.min.mjs +0 -7
  554. package/dist/x/find.min.mjs +0 -7
  555. package/dist/x/findIndex.min.mjs +0 -7
  556. package/dist/x/first.min.mjs +0 -7
  557. package/dist/x/flatten.min.mjs +0 -7
  558. package/dist/x/forEach.es.min.js +0 -7
  559. package/dist/x/forEach.min.js +0 -8
  560. package/dist/x/forEach.min.mjs +0 -7
  561. package/dist/x/groupBy.min.mjs +0 -7
  562. package/dist/x/has.min.mjs +0 -7
  563. package/dist/x/identity.min.mjs +0 -7
  564. package/dist/x/includes.min.mjs +0 -7
  565. package/dist/x/isDeepEqual.min.mjs +0 -7
  566. package/dist/x/isEmpty.min.mjs +0 -7
  567. package/dist/x/isEqual.min.mjs +0 -7
  568. package/dist/x/isFunction.min.mjs +0 -7
  569. package/dist/x/isIn.min.mjs +0 -7
  570. package/dist/x/isObject.min.mjs +0 -7
  571. package/dist/x/isString.min.mjs +0 -7
  572. package/dist/x/keys.min.mjs +0 -7
  573. package/dist/x/last.min.mjs +0 -7
  574. package/dist/x/maxBy.min.mjs +0 -7
  575. package/dist/x/noop.min.mjs +0 -7
  576. package/dist/x/pluck.min.mjs +0 -7
  577. package/dist/x/prepend.min.mjs +0 -7
  578. package/dist/x/size.min.mjs +0 -7
  579. package/dist/x/trace.min.mjs +0 -7
  580. package/dist/x/unionWith.min.mjs +0 -7
  581. package/dist/x/uniq.min.mjs +0 -7
  582. package/dist/x/unless.min.mjs +0 -7
  583. package/dist/x/values.min.mjs +0 -7
  584. package/dist/x/when.min.mjs +0 -7
  585. package/distributor.js +0 -495
  586. package/fork.js +0 -101
  587. package/x/forEach.js +0 -93
  588. package/x/forEach.test.js +0 -218
  589. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  590. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  591. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  592. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  593. /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