rubico 2.0.1 → 2.2.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 (501) hide show
  1. package/README.md +10 -8
  2. package/Transducer.js +28 -0
  3. package/_internal/genericTransform.js +30 -28
  4. package/_internal/reducerTryCatch.js +55 -0
  5. package/dist/Transducer.es.js +28 -1
  6. package/dist/Transducer.es.min.js +2 -2
  7. package/dist/Transducer.js +28 -1
  8. package/dist/Transducer.min.js +2 -2
  9. package/dist/Transducer.mjs +28 -1
  10. package/dist/__.es.js +1 -1
  11. package/dist/__.es.min.js +1 -1
  12. package/dist/__.js +1 -1
  13. package/dist/__.min.js +1 -1
  14. package/dist/__.mjs +1 -1
  15. package/dist/all.es.js +1 -1
  16. package/dist/all.es.min.js +1 -1
  17. package/dist/all.js +1 -1
  18. package/dist/all.min.js +1 -1
  19. package/dist/all.mjs +1 -1
  20. package/dist/always.es.js +1 -1
  21. package/dist/always.es.min.js +1 -1
  22. package/dist/always.js +1 -1
  23. package/dist/always.min.js +1 -1
  24. package/dist/always.mjs +1 -1
  25. package/dist/and.es.js +1 -1
  26. package/dist/and.es.min.js +1 -1
  27. package/dist/and.js +1 -1
  28. package/dist/and.min.js +1 -1
  29. package/dist/and.mjs +1 -1
  30. package/dist/assign.es.js +1 -1
  31. package/dist/assign.es.min.js +1 -1
  32. package/dist/assign.js +1 -1
  33. package/dist/assign.min.js +1 -1
  34. package/dist/assign.mjs +1 -1
  35. package/dist/compose.es.js +1 -1
  36. package/dist/compose.es.min.js +1 -1
  37. package/dist/compose.js +1 -1
  38. package/dist/compose.min.js +1 -1
  39. package/dist/compose.mjs +1 -1
  40. package/dist/curry.es.js +1 -1
  41. package/dist/curry.es.min.js +1 -1
  42. package/dist/curry.js +1 -1
  43. package/dist/curry.min.js +1 -1
  44. package/dist/curry.mjs +1 -1
  45. package/dist/eq.es.js +1 -1
  46. package/dist/eq.es.min.js +1 -1
  47. package/dist/eq.js +1 -1
  48. package/dist/eq.min.js +1 -1
  49. package/dist/eq.mjs +1 -1
  50. package/dist/every.es.js +1 -1
  51. package/dist/every.es.min.js +1 -1
  52. package/dist/every.js +1 -1
  53. package/dist/every.min.js +1 -1
  54. package/dist/every.mjs +1 -1
  55. package/dist/filter.es.js +1 -1
  56. package/dist/filter.es.min.js +1 -1
  57. package/dist/filter.js +1 -1
  58. package/dist/filter.min.js +1 -1
  59. package/dist/filter.mjs +1 -1
  60. package/dist/flatMap.es.js +1 -1
  61. package/dist/flatMap.es.min.js +1 -1
  62. package/dist/flatMap.js +1 -1
  63. package/dist/flatMap.min.js +1 -1
  64. package/dist/flatMap.mjs +1 -1
  65. package/dist/forEach.es.js +1 -1
  66. package/dist/forEach.es.min.js +1 -1
  67. package/dist/forEach.js +1 -1
  68. package/dist/forEach.min.js +1 -1
  69. package/dist/forEach.mjs +1 -1
  70. package/dist/get.es.js +1 -1
  71. package/dist/get.es.min.js +1 -1
  72. package/dist/get.js +1 -1
  73. package/dist/get.min.js +1 -1
  74. package/dist/get.mjs +1 -1
  75. package/dist/gt.es.js +1 -1
  76. package/dist/gt.es.min.js +1 -1
  77. package/dist/gt.js +1 -1
  78. package/dist/gt.min.js +1 -1
  79. package/dist/gt.mjs +1 -1
  80. package/dist/gte.es.js +1 -1
  81. package/dist/gte.es.min.js +1 -1
  82. package/dist/gte.js +1 -1
  83. package/dist/gte.min.js +1 -1
  84. package/dist/gte.mjs +1 -1
  85. package/dist/lt.es.js +1 -1
  86. package/dist/lt.es.min.js +1 -1
  87. package/dist/lt.js +1 -1
  88. package/dist/lt.min.js +1 -1
  89. package/dist/lt.mjs +1 -1
  90. package/dist/lte.es.js +1 -1
  91. package/dist/lte.es.min.js +1 -1
  92. package/dist/lte.js +1 -1
  93. package/dist/lte.min.js +1 -1
  94. package/dist/lte.mjs +1 -1
  95. package/dist/map.es.js +1 -1
  96. package/dist/map.es.min.js +1 -1
  97. package/dist/map.js +1 -1
  98. package/dist/map.min.js +1 -1
  99. package/dist/map.mjs +1 -1
  100. package/dist/not.es.js +1 -1
  101. package/dist/not.es.min.js +1 -1
  102. package/dist/not.js +1 -1
  103. package/dist/not.min.js +1 -1
  104. package/dist/not.mjs +1 -1
  105. package/dist/omit.es.js +1 -1
  106. package/dist/omit.es.min.js +1 -1
  107. package/dist/omit.js +1 -1
  108. package/dist/omit.min.js +1 -1
  109. package/dist/omit.mjs +1 -1
  110. package/dist/or.es.js +1 -1
  111. package/dist/or.es.min.js +1 -1
  112. package/dist/or.js +1 -1
  113. package/dist/or.min.js +1 -1
  114. package/dist/or.mjs +1 -1
  115. package/dist/pick.es.js +1 -1
  116. package/dist/pick.es.min.js +1 -1
  117. package/dist/pick.js +1 -1
  118. package/dist/pick.min.js +1 -1
  119. package/dist/pick.mjs +1 -1
  120. package/dist/pipe.es.js +1 -1
  121. package/dist/pipe.es.min.js +1 -1
  122. package/dist/pipe.js +1 -1
  123. package/dist/pipe.min.js +1 -1
  124. package/dist/pipe.mjs +1 -1
  125. package/dist/reduce.es.js +1 -1
  126. package/dist/reduce.es.min.js +1 -1
  127. package/dist/reduce.js +1 -1
  128. package/dist/reduce.min.js +1 -1
  129. package/dist/reduce.mjs +1 -1
  130. package/dist/rubico.es.js +57 -46
  131. package/dist/rubico.es.min.js +2 -2
  132. package/dist/rubico.global.js +57 -46
  133. package/dist/rubico.global.min.js +2 -2
  134. package/dist/rubico.js +57 -46
  135. package/dist/rubico.min.js +2 -2
  136. package/dist/rubico.mjs +57 -46
  137. package/dist/set.es.js +1 -1
  138. package/dist/set.es.min.js +1 -1
  139. package/dist/set.js +1 -1
  140. package/dist/set.min.js +1 -1
  141. package/dist/set.mjs +1 -1
  142. package/dist/some.es.js +1 -1
  143. package/dist/some.es.min.js +1 -1
  144. package/dist/some.js +1 -1
  145. package/dist/some.min.js +1 -1
  146. package/dist/some.mjs +1 -1
  147. package/dist/switchCase.es.js +1 -1
  148. package/dist/switchCase.es.min.js +1 -1
  149. package/dist/switchCase.js +1 -1
  150. package/dist/switchCase.min.js +1 -1
  151. package/dist/switchCase.mjs +1 -1
  152. package/dist/tap.es.js +32 -2
  153. package/dist/tap.es.min.js +2 -2
  154. package/dist/tap.js +32 -2
  155. package/dist/tap.min.js +2 -2
  156. package/dist/tap.mjs +32 -2
  157. package/dist/thunkify.es.js +1 -1
  158. package/dist/thunkify.es.min.js +1 -1
  159. package/dist/thunkify.js +1 -1
  160. package/dist/thunkify.min.js +1 -1
  161. package/dist/thunkify.mjs +1 -1
  162. package/dist/transform.es.js +26 -24
  163. package/dist/transform.es.min.js +2 -2
  164. package/dist/transform.js +26 -24
  165. package/dist/transform.min.js +2 -2
  166. package/dist/transform.mjs +26 -24
  167. package/dist/tryCatch.es.js +1 -1
  168. package/dist/tryCatch.es.min.js +1 -1
  169. package/dist/tryCatch.js +1 -1
  170. package/dist/tryCatch.min.js +1 -1
  171. package/dist/tryCatch.mjs +1 -1
  172. package/dist/x/append.es.js +1 -1
  173. package/dist/x/append.es.min.js +1 -1
  174. package/dist/x/append.js +1 -1
  175. package/dist/x/append.min.js +1 -1
  176. package/dist/x/append.mjs +1 -1
  177. package/dist/x/callProp.es.js +1 -1
  178. package/dist/x/callProp.es.min.js +1 -1
  179. package/dist/x/callProp.js +1 -1
  180. package/dist/x/callProp.min.js +1 -1
  181. package/dist/x/callProp.mjs +1 -1
  182. package/dist/x/defaultsDeep.es.js +1 -1
  183. package/dist/x/defaultsDeep.es.min.js +1 -1
  184. package/dist/x/defaultsDeep.js +1 -1
  185. package/dist/x/defaultsDeep.min.js +1 -1
  186. package/dist/x/defaultsDeep.mjs +1 -1
  187. package/dist/x/differenceWith.es.js +1 -1
  188. package/dist/x/differenceWith.es.min.js +1 -1
  189. package/dist/x/differenceWith.js +1 -1
  190. package/dist/x/differenceWith.min.js +1 -1
  191. package/dist/x/differenceWith.mjs +1 -1
  192. package/dist/x/filterOut.es.js +1 -1
  193. package/dist/x/filterOut.es.min.js +1 -1
  194. package/dist/x/filterOut.js +1 -1
  195. package/dist/x/filterOut.min.js +1 -1
  196. package/dist/x/filterOut.mjs +1 -1
  197. package/dist/x/find.es.js +1 -1
  198. package/dist/x/find.es.min.js +1 -1
  199. package/dist/x/find.js +1 -1
  200. package/dist/x/find.min.js +1 -1
  201. package/dist/x/find.mjs +1 -1
  202. package/dist/x/findIndex.es.js +1 -1
  203. package/dist/x/findIndex.es.min.js +1 -1
  204. package/dist/x/findIndex.js +1 -1
  205. package/dist/x/findIndex.min.js +1 -1
  206. package/dist/x/findIndex.mjs +1 -1
  207. package/dist/x/first.es.js +1 -1
  208. package/dist/x/first.es.min.js +1 -1
  209. package/dist/x/first.js +1 -1
  210. package/dist/x/first.min.js +1 -1
  211. package/dist/x/first.mjs +1 -1
  212. package/dist/x/flatten.es.js +1 -1
  213. package/dist/x/flatten.es.min.js +1 -1
  214. package/dist/x/flatten.js +1 -1
  215. package/dist/x/flatten.min.js +1 -1
  216. package/dist/x/flatten.mjs +1 -1
  217. package/dist/x/groupBy.es.js +1 -1
  218. package/dist/x/groupBy.es.min.js +1 -1
  219. package/dist/x/groupBy.js +1 -1
  220. package/dist/x/groupBy.min.js +1 -1
  221. package/dist/x/groupBy.mjs +1 -1
  222. package/dist/x/has.es.js +1 -1
  223. package/dist/x/has.es.min.js +1 -1
  224. package/dist/x/has.js +1 -1
  225. package/dist/x/has.min.js +1 -1
  226. package/dist/x/has.mjs +1 -1
  227. package/dist/x/identity.es.js +1 -1
  228. package/dist/x/identity.es.min.js +1 -1
  229. package/dist/x/identity.js +1 -1
  230. package/dist/x/identity.min.js +1 -1
  231. package/dist/x/identity.mjs +1 -1
  232. package/dist/x/includes.es.js +1 -1
  233. package/dist/x/includes.es.min.js +1 -1
  234. package/dist/x/includes.js +1 -1
  235. package/dist/x/includes.min.js +1 -1
  236. package/dist/x/includes.mjs +1 -1
  237. package/dist/x/isDeepEqual.es.js +1 -1
  238. package/dist/x/isDeepEqual.es.min.js +1 -1
  239. package/dist/x/isDeepEqual.js +1 -1
  240. package/dist/x/isDeepEqual.min.js +1 -1
  241. package/dist/x/isDeepEqual.mjs +1 -1
  242. package/dist/x/isEmpty.es.js +1 -1
  243. package/dist/x/isEmpty.es.min.js +1 -1
  244. package/dist/x/isEmpty.js +1 -1
  245. package/dist/x/isEmpty.min.js +1 -1
  246. package/dist/x/isEmpty.mjs +1 -1
  247. package/dist/x/isEqual.es.js +1 -1
  248. package/dist/x/isEqual.es.min.js +1 -1
  249. package/dist/x/isEqual.js +1 -1
  250. package/dist/x/isEqual.min.js +1 -1
  251. package/dist/x/isEqual.mjs +1 -1
  252. package/dist/x/isFunction.es.js +1 -1
  253. package/dist/x/isFunction.es.min.js +1 -1
  254. package/dist/x/isFunction.js +1 -1
  255. package/dist/x/isFunction.min.js +1 -1
  256. package/dist/x/isFunction.mjs +1 -1
  257. package/dist/x/isIn.es.js +1 -1
  258. package/dist/x/isIn.es.min.js +1 -1
  259. package/dist/x/isIn.js +1 -1
  260. package/dist/x/isIn.min.js +1 -1
  261. package/dist/x/isIn.mjs +1 -1
  262. package/dist/x/isObject.es.js +1 -1
  263. package/dist/x/isObject.es.min.js +1 -1
  264. package/dist/x/isObject.js +1 -1
  265. package/dist/x/isObject.min.js +1 -1
  266. package/dist/x/isObject.mjs +1 -1
  267. package/dist/x/isString.es.js +1 -1
  268. package/dist/x/isString.es.min.js +1 -1
  269. package/dist/x/isString.js +1 -1
  270. package/dist/x/isString.min.js +1 -1
  271. package/dist/x/isString.mjs +1 -1
  272. package/dist/x/keys.es.js +1 -1
  273. package/dist/x/keys.es.min.js +1 -1
  274. package/dist/x/keys.js +1 -1
  275. package/dist/x/keys.min.js +1 -1
  276. package/dist/x/keys.mjs +1 -1
  277. package/dist/x/last.es.js +1 -1
  278. package/dist/x/last.es.min.js +1 -1
  279. package/dist/x/last.js +1 -1
  280. package/dist/x/last.min.js +1 -1
  281. package/dist/x/last.mjs +1 -1
  282. package/dist/x/maxBy.es.js +1 -1
  283. package/dist/x/maxBy.es.min.js +1 -1
  284. package/dist/x/maxBy.js +1 -1
  285. package/dist/x/maxBy.min.js +1 -1
  286. package/dist/x/maxBy.mjs +1 -1
  287. package/dist/x/noop.es.js +1 -1
  288. package/dist/x/noop.es.min.js +1 -1
  289. package/dist/x/noop.js +1 -1
  290. package/dist/x/noop.min.js +1 -1
  291. package/dist/x/noop.mjs +1 -1
  292. package/dist/x/pluck.es.js +1 -1
  293. package/dist/x/pluck.es.min.js +1 -1
  294. package/dist/x/pluck.js +1 -1
  295. package/dist/x/pluck.min.js +1 -1
  296. package/dist/x/pluck.mjs +1 -1
  297. package/dist/x/prepend.es.js +1 -1
  298. package/dist/x/prepend.es.min.js +1 -1
  299. package/dist/x/prepend.js +1 -1
  300. package/dist/x/prepend.min.js +1 -1
  301. package/dist/x/prepend.mjs +1 -1
  302. package/dist/x/size.es.js +1 -1
  303. package/dist/x/size.es.min.js +1 -1
  304. package/dist/x/size.js +1 -1
  305. package/dist/x/size.min.js +1 -1
  306. package/dist/x/size.mjs +1 -1
  307. package/dist/x/trace.es.js +32 -2
  308. package/dist/x/trace.es.min.js +2 -2
  309. package/dist/x/trace.js +32 -2
  310. package/dist/x/trace.min.js +2 -2
  311. package/dist/x/trace.mjs +32 -2
  312. package/dist/x/unionWith.es.js +1 -1
  313. package/dist/x/unionWith.es.min.js +1 -1
  314. package/dist/x/unionWith.js +1 -1
  315. package/dist/x/unionWith.min.js +1 -1
  316. package/dist/x/unionWith.mjs +1 -1
  317. package/dist/x/uniq.es.js +1 -1
  318. package/dist/x/uniq.es.min.js +1 -1
  319. package/dist/x/uniq.js +1 -1
  320. package/dist/x/uniq.min.js +1 -1
  321. package/dist/x/uniq.mjs +1 -1
  322. package/dist/x/unless.es.js +1 -1
  323. package/dist/x/unless.es.min.js +1 -1
  324. package/dist/x/unless.js +1 -1
  325. package/dist/x/unless.min.js +1 -1
  326. package/dist/x/unless.mjs +1 -1
  327. package/dist/x/values.es.js +1 -1
  328. package/dist/x/values.es.min.js +1 -1
  329. package/dist/x/values.js +1 -1
  330. package/dist/x/values.min.js +1 -1
  331. package/dist/x/values.mjs +1 -1
  332. package/dist/x/when.es.js +1 -1
  333. package/dist/x/when.es.min.js +1 -1
  334. package/dist/x/when.js +1 -1
  335. package/dist/x/when.min.js +1 -1
  336. package/dist/x/when.mjs +1 -1
  337. package/es.js +57 -46
  338. package/index.js +57 -46
  339. package/package.json +43 -2
  340. package/tap.js +15 -4
  341. package/.eslintignore +0 -5
  342. package/.eslintrc.js +0 -330
  343. package/.github/workflows/nodejs.yml +0 -27
  344. package/.vscode/launch.json +0 -25
  345. package/AggregateReducer.test.js +0 -82
  346. package/CHANGELOG.md +0 -310
  347. package/CNAME +0 -1
  348. package/CODE_OF_CONDUCT.md +0 -128
  349. package/CONTRIBUTING.md +0 -4
  350. package/Transducer.test.js +0 -117
  351. package/_config.yml +0 -1
  352. package/_internal/improvedGenericTransform.js +0 -93
  353. package/archive/FlatMappingIterator-2020-09-28.js +0 -68
  354. package/archive/_Promise-2023-05-29.js +0 -93
  355. package/archive/arrayMap2-2023-05-29.js +0 -73
  356. package/archive/benchmarks-v1.9.7/all.js +0 -34
  357. package/archive/benchmarks-v1.9.7/and.js +0 -24
  358. package/archive/benchmarks-v1.9.7/any.js +0 -32
  359. package/archive/benchmarks-v1.9.7/assign.js +0 -174
  360. package/archive/benchmarks-v1.9.7/curry.js +0 -55
  361. package/archive/benchmarks-v1.9.7/eq.js +0 -25
  362. package/archive/benchmarks-v1.9.7/filter.js +0 -1322
  363. package/archive/benchmarks-v1.9.7/flatMap.js +0 -48
  364. package/archive/benchmarks-v1.9.7/forEach.js +0 -33
  365. package/archive/benchmarks-v1.9.7/fork.js +0 -123
  366. package/archive/benchmarks-v1.9.7/get.js +0 -44
  367. package/archive/benchmarks-v1.9.7/gt.js +0 -25
  368. package/archive/benchmarks-v1.9.7/gte.js +0 -25
  369. package/archive/benchmarks-v1.9.7/integration.js +0 -88
  370. package/archive/benchmarks-v1.9.7/lt.js +0 -25
  371. package/archive/benchmarks-v1.9.7/lte.js +0 -25
  372. package/archive/benchmarks-v1.9.7/map.js +0 -892
  373. package/archive/benchmarks-v1.9.7/misc.js +0 -470
  374. package/archive/benchmarks-v1.9.7/omit.js +0 -28
  375. package/archive/benchmarks-v1.9.7/or.js +0 -51
  376. package/archive/benchmarks-v1.9.7/pick.js +0 -24
  377. package/archive/benchmarks-v1.9.7/pipe.js +0 -152
  378. package/archive/benchmarks-v1.9.7/reduce.js +0 -739
  379. package/archive/benchmarks-v1.9.7/switchCase.js +0 -256
  380. package/archive/benchmarks-v1.9.7/tap.js +0 -90
  381. package/archive/benchmarks-v1.9.7/transform.js +0 -218
  382. package/archive/benchmarks-v1.9.7/tryCatch.js +0 -108
  383. package/archive/curry.js +0 -13
  384. package/archive/examples-v1.6.11/browserModule.html +0 -31
  385. package/archive/examples-v1.6.11/browserScript.html +0 -32
  386. package/archive/examples-v1.6.11/coolTransformToConsole.js +0 -1
  387. package/archive/examples-v1.6.11/denoLargeGasMap.js +0 -85
  388. package/archive/examples-v1.6.11/denoServer.js +0 -9
  389. package/archive/examples-v1.6.11/denoServerWithMiddleware.js +0 -55
  390. package/archive/examples-v1.6.11/logTodosRange.js +0 -21
  391. package/archive/examples-v1.6.11/makeARequest.html +0 -46
  392. package/archive/examples-v1.6.11/nodeComplexTransformation.js +0 -106
  393. package/archive/examples-v1.6.11/nodeConditionallyExtractIDs.js +0 -50
  394. package/archive/examples-v1.6.11/nodeFloatingPoint.js +0 -55
  395. package/archive/examples-v1.6.11/nodeGetAllJiraBoards.js +0 -45
  396. package/archive/examples-v1.6.11/nodeGetSocketIOClientsTotalCount.js +0 -34
  397. package/archive/examples-v1.6.11/nodeKafkaConsumer.js +0 -63
  398. package/archive/examples-v1.6.11/nodeMakeMultipleRequests.js +0 -55
  399. package/archive/examples-v1.6.11/nodeOnRecordAddTask.js +0 -34
  400. package/archive/examples-v1.6.11/nodePostRequestWithAuth.js +0 -36
  401. package/archive/examples-v1.6.11/nodeSpeedbackMatchmakingAlgorithm.js +0 -96
  402. package/archive/examples-v1.6.11/nodeTireData.js +0 -36
  403. package/archive/examples-v1.6.11/nodeTripleMap.js +0 -85
  404. package/archive/examples-v1.6.11/squaredOdds.ts +0 -16
  405. package/archive/examples-v1.6.11/transducerMaxBuyer.js +0 -67
  406. package/archive/examples-v1.6.11/transformLogTodosRange.js +0 -31
  407. package/archive/examples-v1.6.11/transformStreamRandomInts.js +0 -19
  408. package/archive/genericReduceConcurrent.js +0 -277
  409. package/archive/index.v0.2.9.js +0 -1685
  410. package/archive/objectValuesGenerator.js +0 -13
  411. package/archive/test.v0.2.9.js +0 -2334
  412. package/bench +0 -65
  413. package/benchmark-output/v1.9.7 +0 -268
  414. package/benchmarks/all.async.js +0 -43
  415. package/benchmarks/all.js +0 -43
  416. package/benchmarks/always.js +0 -15
  417. package/benchmarks/and.async.js +0 -25
  418. package/benchmarks/and.js +0 -25
  419. package/benchmarks/assign.async.js +0 -27
  420. package/benchmarks/assign.js +0 -27
  421. package/benchmarks/curry.js +0 -35
  422. package/benchmarks/eq.async.js +0 -23
  423. package/benchmarks/eq.js +0 -23
  424. package/benchmarks/every.async.js +0 -19
  425. package/benchmarks/every.js +0 -19
  426. package/benchmarks/filter.async.js +0 -32
  427. package/benchmarks/filter.js +0 -38
  428. package/benchmarks/flatMap.async.js +0 -26
  429. package/benchmarks/flatMap.js +0 -38
  430. package/benchmarks/get.async.js +0 -19
  431. package/benchmarks/get.js +0 -39
  432. package/benchmarks/gt.async.js +0 -23
  433. package/benchmarks/gt.js +0 -23
  434. package/benchmarks/gte.async.js +0 -23
  435. package/benchmarks/gte.js +0 -23
  436. package/benchmarks/lt.async.js +0 -23
  437. package/benchmarks/lt.js +0 -23
  438. package/benchmarks/lte.async.js +0 -23
  439. package/benchmarks/lte.js +0 -23
  440. package/benchmarks/map.async.js +0 -43
  441. package/benchmarks/map.js +0 -40
  442. package/benchmarks/misc/Promise.js +0 -26
  443. package/benchmarks/misc/isPromise.js +0 -30
  444. package/benchmarks/misc/promiseAll.js +0 -36
  445. package/benchmarks/not.js +0 -23
  446. package/benchmarks/omit.js +0 -38
  447. package/benchmarks/or.async.js +0 -25
  448. package/benchmarks/or.js +0 -25
  449. package/benchmarks/pick.js +0 -38
  450. package/benchmarks/pipe.async.js +0 -47
  451. package/benchmarks/pipe.js +0 -47
  452. package/benchmarks/reduce.async.js +0 -32
  453. package/benchmarks/reduce.js +0 -38
  454. package/benchmarks/set.async.js +0 -19
  455. package/benchmarks/set.js +0 -41
  456. package/benchmarks/some.async.js +0 -19
  457. package/benchmarks/some.js +0 -19
  458. package/benchmarks/switchCase.async.js +0 -27
  459. package/benchmarks/switchCase.js +0 -55
  460. package/benchmarks/tap.js +0 -15
  461. package/benchmarks/thunkify.js +0 -15
  462. package/benchmarks/transform.async.js +0 -27
  463. package/benchmarks/transform.js +0 -40
  464. package/benchmarks/tryCatch.async.js +0 -25
  465. package/benchmarks/tryCatch.js +0 -32
  466. package/build +0 -472
  467. package/dist-test.js +0 -37
  468. package/examples/type-to-search-wiki/README.md +0 -19
  469. package/examples/type-to-search-wiki/package.json +0 -13
  470. package/examples/type-to-search-wiki/src/app.js +0 -46
  471. package/examples/type-to-search-wiki/src/index.html +0 -18
  472. package/import-test.html +0 -73
  473. package/memory-usage/reduce.js +0 -40
  474. package/monad/AsyncPool.js +0 -0
  475. package/monad/BrokenPromise.js +0 -63
  476. package/monad/BrokenPromise.test.js +0 -22
  477. package/monad/Cancellable.js +0 -84
  478. package/monad/Cancellable.memoryUsage.js +0 -60
  479. package/monad/Cancellable.test.js +0 -20
  480. package/monad/Function.js +0 -0
  481. package/monad/Instance.benchmark.js +0 -378
  482. package/monad/Instance.js +0 -351
  483. package/monad/Instance.test.js +0 -445
  484. package/monad/Mux.benchmark.js +0 -29
  485. package/monad/Mux.js +0 -589
  486. package/monad/Mux.test.js +0 -512
  487. package/monad/PossiblePromise.benchmark.js +0 -87
  488. package/monad/PossiblePromise.js +0 -144
  489. package/monad/PossiblePromise.test.js +0 -89
  490. package/monad/README.md +0 -75
  491. package/monad/Reducer.js +0 -0
  492. package/monad/Sequence.benchmark.js +0 -42
  493. package/monad/Sequence.js +0 -36
  494. package/monad/SpecScript.js +0 -0
  495. package/monad/Stack.js +0 -0
  496. package/monad/Struct.benchmark.js +0 -154
  497. package/monad/Struct.js +0 -249
  498. package/monad/Struct.test.js +0 -237
  499. package/rubico.js +0 -66
  500. package/test.js +0 -4242
  501. package/tmp.js +0 -1
@@ -1,93 +0,0 @@
1
- const isPromise = require('./isPromise')
2
- const isArray = require('./isArray')
3
- const isBinary = require('./isBinary')
4
- const callPropUnary = require('./callPropUnary')
5
- const __ = require('./placeholder')
6
- const curry2 = require('./curry2')
7
- const curry3 = require('./curry3')
8
- const always = require('./always')
9
- const noop = require('./noop')
10
- const add = require('./add')
11
- const genericReduce = require('./genericReduce')
12
- const objectAssign = require('./objectAssign')
13
- const arrayExtend = require('./arrayExtend')
14
- const binaryExtend = require('./binaryExtend')
15
- const streamExtend = require('./streamExtend')
16
- const setExtend = require('./setExtend')
17
- const callConcat = require('./callConcat')
18
-
19
- /**
20
- * @name identityTransform
21
- *
22
- * @synopsis
23
- * ```coffeescript [specscript]
24
- * Reducer = (any, any)=>Promise|any
25
- *
26
- * identityTransform<
27
- * collection any,
28
- * transducer Reducer=>Reducer,
29
- * accum undefined|null,
30
- * >(args, transducer, accum) -> Promise|accum
31
- * ```
32
- *
33
- * @description
34
- * Reduce a value, always returning the initial accum
35
- */
36
- const identityTransform = function (collection, transducer, accum) {
37
- const nil = genericReduce(collection, transducer(noop), null)
38
- return isPromise(nil) ? nil.then(always(accum)) : accum
39
- }
40
-
41
- /**
42
- * @name genericTransform
43
- *
44
- * @synopsis
45
- * ```coffeescript [specscript]
46
- * Reducer = (any, any)=>Promise|any
47
- * Semigroup = Array|string|Set|TypedArray
48
- * |{ concat: function }|{ write: function }|Object
49
- *
50
- * genericTransform<
51
- * collection any,
52
- * transducer Reducer=>Reducer,
53
- * accum Semigroup|any,
54
- * >(collection, transducer, accum) -> accum
55
- * ```
56
- */
57
- const genericTransform = function (collection, transducer, accum) {
58
- if (isArray(accum)) {
59
- return genericReduce(collection, transducer(arrayExtend), accum)
60
- }
61
- if (isBinary(accum)) {
62
- const intermediateArray = genericReduce(collection, transducer(arrayExtend), [])
63
- return isPromise(intermediateArray)
64
- ? intermediateArray.then(curry2(binaryExtend, accum, __))
65
- : binaryExtend(accum, intermediateArray)
66
- }
67
- if (accum == null) {
68
- return identityTransform(collection, transducer, accum)
69
- }
70
-
71
- const constructor = accum.constructor
72
- if (typeof accum == 'string' || constructor == String) {
73
- const result = genericReduce(collection, transducer(arrayExtend), [accum])
74
- return isPromise(result)
75
- ? result.then(curry3(callPropUnary, __, 'join', ''))
76
- : result.join('')
77
- }
78
- if (typeof accum.concat == 'function') {
79
- return genericReduce(collection, transducer(callConcat), accum)
80
- }
81
- if (typeof accum.write == 'function') {
82
- return genericReduce(collection, transducer(streamExtend), accum)
83
- }
84
- if (constructor == Set) {
85
- return genericReduce(collection, transducer(setExtend), accum)
86
- }
87
- if (constructor == Object) {
88
- return genericReduce(collection, transducer(objectAssign), accum)
89
- }
90
- return identityTransform(collection, transducer, accum)
91
- }
92
-
93
- module.exports = genericTransform
@@ -1,68 +0,0 @@
1
- /**
2
- * @name FlatMappingIterator
3
- *
4
- * @synopsis
5
- * ```coffeescript [specscript]
6
- * Stream<T> = { read: ()=>T, write: T=>() }
7
- * Monad<T> = Array<T>|String<T>|Set<T>
8
- * |TypedArray<T>|Stream<T>|Iterator<Promise|T>
9
- * |{ chain: T=>Monad<T> }|{ flatMap: T=>Monad<T> }|Object<T>
10
- * Reducer<T> = (any, T)=>Promise|any
11
- * Foldable<T> = Iterable<T>|AsyncIterable<T>
12
- * |{ reduce: Reducer<T>=>any }|Object<T>
13
- *
14
- * FlatMappingIterator<T>(
15
- * iterator Iterator<Promise|T>
16
- * flatMapper T=>Promise|Monad<T>|Foldable<T>|T,
17
- * ) -> Iterator<Promise|T>
18
- * ```
19
- */
20
- const FlatMappingIterator = function (iterator, flatMapper) {
21
- const buffer = [], promises = [],
22
- bufferPush = curry3(callPropUnary, buffer, 'push', __),
23
- bufferPushReducer = funcConcatSync(getArg1, bufferPush),
24
- flattenIntoBuffer = curry3(genericReduce, __, bufferPushReducer, null),
25
- loadIntoBuffer = funcConcatSync(flattenIntoBuffer, tapSync(bufferLoading => {
26
- if (isPromise(bufferLoading)) {
27
- const promise = bufferLoading.then(() => promises.delete(promise))
28
- promises.add(promise)
29
- }
30
- }))
31
- let bufferIndex = Infinity
32
- return {
33
- [symbolAsyncIterator]() {
34
- return this
35
- },
36
- [symbolIterator]() {
37
- return this
38
- },
39
-
40
- _iterationStep(iteration) {
41
- if (iteration.done) {
42
- if (promises.size == 0) {
43
- return iteration
44
- }
45
- return promiseRace(promises).then(this.next.bind(this))
46
- }
47
- const monad = flatMapper(iteration.value),
48
- loadIntoBufferThenNext = funcConcatSync(
49
- loadIntoBuffer, this.next.bind(this))
50
- return isPromise(monad)
51
- ? monad.then(loadIntoBufferThenNext)
52
- : loadIntoBufferThenNext(monad)
53
- },
54
-
55
- next() {
56
- if (bufferIndex < buffer.length) {
57
- const value = buffer[bufferIndex]
58
- delete buffer[bufferIndex]
59
- bufferIndex += 1
60
- return { value, done: false }
61
- }
62
- const iteration = iterator.next()
63
- return isPromise(iteration)
64
- ? iteration.then(this._iterationStep.bind(this))
65
- : this._iterationStep(iteration)
66
- },
67
- }
68
- }
@@ -1,93 +0,0 @@
1
- const isPromise = require('./isPromise')
2
-
3
- /**
4
- * @name _Promise
5
- *
6
- * @synopsis
7
- * ```coffeescript [specscript]
8
- * new _Promise() -> _Promise
9
- * ```
10
- *
11
- * @description
12
- * Internal _Promise. Does not conform to spec.
13
- */
14
- const _Promise = function () {
15
- this.onFulfilledCallbacks = []
16
- this.onRejectedCallbacks = []
17
- this.value = null
18
- this.error = null
19
- this.status = 'pending'
20
- }
21
-
22
- _Promise.prototype._fulfill = function (value) {
23
- if (this.status == 'pending') {
24
- this.status = 'fulfilled'
25
- this.value = value
26
- this.onFulfilledCallbacks.forEach(cb => cb(value)) // TODO optimize
27
- }
28
- }
29
-
30
- _Promise.prototype._reject = function (error) {
31
- if (this.status == 'pending') {
32
- this.status = 'rejected'
33
- this.error = error
34
- this.onRejectedCallbacks.forEach(cb => cb(error)) // TODO optimize
35
- }
36
- }
37
-
38
- _Promise.prototype.then = function (onFulfilled, onRejected) {
39
- return new Promise((resolve, reject) => {
40
- if (this.status == 'pending') {
41
- this.onFulfilledCallbacks.push(() => {
42
- try {
43
- const ret = onFulfilled(this.value)
44
- if (isPromise(ret)) {
45
- ret.then(resolve, reject)
46
- } else {
47
- resolve(ret)
48
- }
49
- } catch (error) {
50
- reject(error)
51
- }
52
- })
53
- this.onRejectedCallbacks.push(() => {
54
- try {
55
- const ret = onRejected(this.error)
56
- if (isPromise(ret)) {
57
- ret.then(resolve, reject)
58
- } else {
59
- reject(ret)
60
- }
61
- } catch (error) {
62
- reject(error)
63
- }
64
- })
65
- }
66
- else if (this.status == 'fulfilled') {
67
- try {
68
- const ret = onFulfilled(this.value)
69
- if (isPromise(ret)) {
70
- ret.then(resolve, reject)
71
- } else {
72
- resolve(ret)
73
- }
74
- } catch (error) {
75
- reject(error)
76
- }
77
- }
78
- else {
79
- try {
80
- const ret = onRejected(this.error)
81
- if (isPromise(ret)) {
82
- ret.then(resolve, reject)
83
- } else {
84
- reject(ret)
85
- }
86
- } catch (error) {
87
- reject(error)
88
- }
89
- }
90
- })
91
- }
92
-
93
- module.exports = _Promise
@@ -1,73 +0,0 @@
1
- const funcCall = require('./funcCall')
2
- const thunkify4 = require('./thunkify4')
3
- const __ = require('./placeholder')
4
- const curry2 = require('./curry2')
5
- const curry3 = require('./curry3')
6
- const curry4 = require('./curry4')
7
- const isPromise = require('./isPromise')
8
- const promiseAll = require('./promiseAll')
9
- const _Promise = require('./_Promise')
10
-
11
- /**
12
- * @name arrayMap
13
- *
14
- * @synopsis
15
- * ```coffeescript [specscript]
16
- * arrayMap(
17
- * array Array,
18
- * mapper (item any, index number, array Array)=>Promise|any,
19
- * ) -> Promise|Array
20
- * ```
21
- *
22
- * @description
23
- * Apply a mapper to each item of an array, returning an array. Mapper may be asynchronous.
24
- */
25
-
26
- const arrayMapHandlePromise = function (
27
- result, promise, index, promiseCounts, _promise
28
- ) {
29
- promiseCounts.pending += 1
30
- promise.then(value => {
31
- result[index] = value
32
- promiseCounts.resolved += 1
33
- if (promiseCounts.resolved == promiseCounts.pending) {
34
- _promise._fulfill(result)
35
- }
36
- }, error => {
37
- _promise.reject(error)
38
- })
39
- }
40
-
41
- const arrayMap2 = function (array, mapper) {
42
- const length = array.length
43
- const result = Array(length)
44
- const promiseCounts = { pending: 0, resolved: 0 }
45
-
46
- let index = -1
47
- let _promise = new _Promise()
48
-
49
- while (++index < length) {
50
- const ret = mapper(array[index], index, array)
51
- if (isPromise(ret)) {
52
- arrayMapHandlePromise(result, ret, index, promiseCounts, _promise)
53
- } else {
54
- result[index] = ret
55
- }
56
- }
57
-
58
- if (promiseCounts.pending == 0) {
59
- return result
60
- }
61
-
62
- return _promise
63
- }
64
-
65
- if (process.argv[1] == __filename) {
66
- const timeInLoopAsync = require('./timeInLoopAsync')
67
-
68
- timeInLoopAsync('arrayMap2', 1e6, async () => {
69
- await arrayMap2([1, 2, 3, 4, 5], async value => value + 1)
70
- })
71
- }
72
-
73
- module.exports = arrayMap2
@@ -1,34 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
- const _ = require('lodash')
4
- const R = require('ramda')
5
-
6
- const isOdd = number => number % 2 == 1
7
-
8
- const isEven = number => number % 2 == 0
9
-
10
- /**
11
- * @name allRace
12
- *
13
- * @benchmark
14
- * _.every: 1e+6: 20.984ms
15
- * R.all: 1e+6: 368.142ms
16
- * rubico.all: 1e+6: 24.772ms
17
- *
18
- * @remarks
19
- * promise check
20
- */
21
-
22
- {
23
- const evenNumbers = [2, 4, 6, 8, 10]
24
-
25
- // console.log(_.every(evenNumbers, isEven))
26
- // console.log(R.all(isEven)(evenNumbers))
27
- // console.log(rubico.all(isEven)(evenNumbers))
28
-
29
- // timeInLoop('_.every', 1e6, () => _.every(evenNumbers, isEven))
30
-
31
- // timeInLoop('R.all', 1e6, () => R.all(isEven)(evenNumbers))
32
-
33
- // timeInLoop('rubico.all', 1e6, () => rubico.all(isEven)(evenNumbers))
34
- }
@@ -1,24 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
-
4
- const { and } = rubico
5
-
6
- const isOdd = x => x % 2 == 1
7
-
8
- const threeOddChecks = number => isOdd(number) && isOdd(number) && isOdd(number)
9
-
10
- const threeIsOdd = and([isOdd, isOdd, isOdd])
11
-
12
- /**
13
- * @name or
14
- *
15
- * @benchmark
16
- * isOdd(value) && isOdd(value) && isOdd(value): 1e+6: 6.664ms
17
- * and([isOdd, isOdd, isOdd]): 1e+6: 16.842ms
18
- */
19
-
20
- {
21
- // timeInLoop('isOdd(value) && isOdd(value) && isOdd(value)', 1e6, () => threeOddChecks(1))
22
-
23
- // timeInLoop('and([isOdd, isOdd, isOdd])', 1e6, () => threeIsOdd(1))
24
- }
@@ -1,32 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
- const _ = require('lodash')
4
- const R = require('ramda')
5
-
6
- const isOdd = number => number % 2 == 1
7
-
8
- /**
9
- * @name anyRace
10
- *
11
- * @benchmark
12
- * _.some: 1e+6: 22.635ms
13
- * R.any: 1e+6: 374.329ms
14
- * rubico.any: 1e+6: 26.815ms
15
- *
16
- * @remarks
17
- * promise check
18
- */
19
-
20
- {
21
- const evenNumbers = [2, 4, 6, 8, 10]
22
-
23
- // console.log(_.some(evenNumbers, isOdd))
24
- // console.log(R.any(isOdd)(evenNumbers))
25
- // console.log(rubico.any(isOdd)(evenNumbers))
26
-
27
- // timeInLoop('_.some', 1e6, () => _.some(evenNumbers, isOdd))
28
-
29
- // timeInLoop('R.any', 1e6, () => R.any(isOdd)(evenNumbers))
30
-
31
- // timeInLoop('rubico.any', 1e6, () => rubico.any(isOdd)(evenNumbers))
32
- }
@@ -1,174 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const { assign } = require('..')
3
-
4
- const isPromise = value => value != null && typeof value.then == 'function'
5
-
6
- const promiseAll = Promise.all.bind(Promise)
7
-
8
- const funcObjectAll1 = funcs => function objectAllFuncs(...args) {
9
- const output = {}, promises = []
10
- for (const key in funcs) {
11
- const outputItem = funcs[key].apply(null, args)
12
- if (isPromise(outputItem)) {
13
- promises.push(outputItem.then(res => {
14
- output[key] = res
15
- }))
16
- } else {
17
- output[key] = outputItem
18
- }
19
- }
20
- return promises.length == 0 ? output : promiseAll(promises).then(() => output)
21
- }
22
-
23
- const funcObjectAll2 = funcs => function objectAllFuncs(...args) {
24
- const output = {}, promises = []
25
- for (const key in funcs) {
26
- const outputItem = funcs[key](...args)
27
- if (isPromise(outputItem)) {
28
- promises.push(outputItem.then(res => {
29
- output[key] = res
30
- }))
31
- } else {
32
- output[key] = outputItem
33
- }
34
- }
35
- return promises.length == 0 ? output : promiseAll(promises).then(() => output)
36
- }
37
-
38
- const funcObjectAll3 = funcs => function objectAllFuncs(...args) {
39
- const result = {}
40
- let isAsync = false
41
- for (const key in funcs) {
42
- const resultItem = funcs[key](...args)
43
- if (isPromise(resultItem)) isAsync = true
44
- result[key] = resultItem
45
- }
46
- return isAsync ? promiseObjectAll(result) : result
47
- }
48
-
49
-
50
- const vanilla1 = ({ number }) => ({
51
- number,
52
- a: number + 1,
53
- b: number + 2,
54
- c: number + 3,
55
- })
56
-
57
- const funcs = {
58
- a: ({ number }) => number + 1,
59
- b: ({ number }) => number + 2,
60
- c: ({ number }) => number + 3,
61
- }
62
-
63
- const vanilla2 = function (obj) {
64
- const output = { ...obj }
65
- for (const key in funcs) {
66
- output[key] = funcs[key](obj)
67
- }
68
- return output
69
- }
70
-
71
- const assign1 = function (funcs) {
72
- const allFuncs = funcObjectAll1.call(null, funcs)
73
- return function assignment(input) {
74
- const output = allFuncs.call(null, input)
75
- return isPromise(output)
76
- ? output.then(res => ({ ...input, ...res }))
77
- : ({ ...input, ...output })
78
- }
79
- }
80
-
81
- const assign2 = function (funcs) {
82
- const allFuncs = funcObjectAll2(funcs)
83
- return function assignment(input) {
84
- const output = allFuncs(input)
85
- return isPromise(output)
86
- ? output.then(res => ({ ...input, ...res }))
87
- : ({ ...input, ...output })
88
- }
89
- }
90
-
91
- const assign3 = function (funcs) {
92
- const allFuncs = funcObjectAll3(funcs)
93
- return function assignment(input) {
94
- const output = allFuncs(input)
95
- return isPromise(output)
96
- ? output.then(res => ({ ...input, ...res }))
97
- : ({ ...input, ...output })
98
- }
99
- }
100
-
101
- // argument resolver for curry2
102
- const curry2ResolveArg0 = (
103
- baseFunc, arg1,
104
- ) => function arg0Resolver(arg0) {
105
- return baseFunc(arg0, arg1)
106
- }
107
-
108
- // argument resolver for curry2
109
- const curry2ResolveArg1 = (
110
- baseFunc, arg0,
111
- ) => function arg1Resolver(arg1) {
112
- return baseFunc(arg0, arg1)
113
- }
114
-
115
- /**
116
- * @name curry2
117
- *
118
- * @synopsis
119
- * __ = Symbol('placeholder')
120
- *
121
- * curry2(
122
- * baseFunc function,
123
- * arg0 __|any,
124
- * arg1 __|any,
125
- * ) -> function
126
- */
127
- const curry2 = function (baseFunc, arg0, arg1) {
128
- return arg0 == __
129
- ? curry2ResolveArg0(baseFunc, arg1)
130
- : curry2ResolveArg1(baseFunc, arg0)
131
- }
132
-
133
- // const objectAssign = Object.assign
134
-
135
- const objectAssign = (objA, objB) => ({ ...objA, ...objB })
136
-
137
- const assign5 = function (funcs) {
138
- const allFuncs = funcObjectAll3(funcs)
139
- return function assignment(object) {
140
- const result = allFuncs(object)
141
- return isPromise(result)
142
- ? result.then(curry2(objectAssign, object, __))
143
- : ({ ...object, ...result })
144
- }
145
- }
146
-
147
- /**
148
- * @name assign
149
- *
150
- * @benchmark
151
- * assign1: 1e+5: 67.168ms
152
- * assign2: 1e+5: 60.779ms
153
- * assign3: 1e+5: 58.094ms
154
- * assign5: 1e+5: 59.132ms
155
- *
156
- * @remarks
157
- * currying is slower here
158
- */
159
-
160
- {
161
-
162
- // console.log('assign1', assign1(funcs)({ number: 2 }))
163
- // console.log('assign2', assign2(funcs)({ number: 2 }))
164
- // console.log('assign3', assign3(funcs)({ number: 2 }))
165
- // console.log('assign5', assign5(funcs)({ number: 2 }))
166
-
167
- // timeInLoop('assign1', 1e5, () => assign1(funcs)({ number: 2 }))
168
-
169
- // timeInLoop('assign2', 1e5, () => assign2(funcs)({ number: 2 }))
170
-
171
- // timeInLoop('assign3', 1e5, () => assign3(funcs)({ number: 2 }))
172
-
173
- // timeInLoop('assign5', 1e5, () => assign5(funcs)({ number: 2 }))
174
- }
@@ -1,55 +0,0 @@
1
- const rubico = require('..')
2
- const timeInLoop = require('../x/timeInLoop')
3
- const R = require('ramda')
4
- const curry1 = require('../_internal/curry1')
5
- const curry2 = require('../_internal/curry2')
6
- const curry3 = require('../_internal/curry3')
7
- const curry4 = require('../_internal/curry4')
8
-
9
- const { __ } = rubico
10
-
11
- /**
12
- * @name curryRace
13
- *
14
- * @benchmark
15
- * rubico.curry: 1e+5: 60.554ms
16
- * R.curry: 1e+5: 106.163ms
17
- */
18
- const add6 = (a, b, c, d, e, f) => a + b + c + d + e + f
19
-
20
- // console.log(rubico.curry(add6)(1, 2)(3)(4, 5, 6)) // 21
21
- // console.log(R.curry(add6)(1, 2)(3)(4, 5, 6)) // 21
22
-
23
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(add6)(1, 2)(3)(4, 5, 6))
24
- // timeInLoop('R.curry', 1e5, () => R.curry(add6)(1, 2)(3)(4, 5, 6))
25
-
26
- /**
27
- * @name curryPlaceholderRace
28
- *
29
- * @benchmark
30
- * rubico.curry: 1e+5: 98.834ms
31
- * R.curry: 1e+5: 147.693ms
32
- */
33
- // console.log(rubico.curry(add6)(1, 2, rubico.__)(3)(4, rubico.__, 6)(5)) // 21
34
- // console.log(R.curry(add6)(1, 2, R.__)(3)(4, R.__, 6)(5)) // 21
35
-
36
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(add6)(1, 2, rubico.__)(3)(4, rubico.__, 6)(5))
37
- // timeInLoop('R.curry', 1e5, () => R.curry(add6)(1, 2, R.__)(3)(4, R.__, 6)(5))
38
-
39
- /**
40
- * @name curryRaceUnary
41
- *
42
- * @benchmark
43
- * rubico.curry: 1e+5: 60.554ms
44
- * R.curry: 1e+5: 106.163ms
45
- *
46
- * rubico.curry: 1e+5: 45.475ms
47
- * R.curry: 1e+5: 66.493ms
48
- */
49
- const identity = value => value
50
-
51
- // console.log(rubico.curry(identity)(__)(1)) // 1
52
- // console.log(R.curry(identity)(R.__)(1)) // 1
53
-
54
- // timeInLoop('rubico.curry', 1e5, () => rubico.curry(identity)(__)(1))
55
- // timeInLoop('R.curry', 1e5, () => R.curry(identity)(R.__)(1))
@@ -1,25 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
- const _ = require('lodash')
4
- const R = require('ramda')
5
-
6
- /**
7
- * @name eq
8
- *
9
- * @benchmark
10
- * rubico.eq(0, 0): 1e+7: 12.499ms
11
- * _.eq(0, 0): 1e+7: 12.585ms
12
- * R.equals(0, 0): 1e+7: 196.767ms
13
- */
14
-
15
- const rubicoEq = rubico.eq(0, 0)
16
-
17
- // console.log(rubicoEq())
18
- // console.log(_.eq(0, 0))
19
- // console.log(R.equals(0, 0))
20
-
21
- // timeInLoop('rubico.eq(0, 0)', 1e7, () => rubicoEq())
22
-
23
- // timeInLoop('_.eq(0, 0)', 1e7, () => _.eq(0, 0))
24
-
25
- // timeInLoop('R.equals(0, 0)', 1e7, () => R.equals(0, 0))