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,470 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
-
3
- const thunkify1 = (func, argument) => () => func(argument)
4
-
5
- const thunkify2 = (func, arg0, arg1) => () => func(arg0, arg1)
6
-
7
- /**
8
- * @name checkNullOrUndefined
9
- *
10
- * @benchmark
11
- * 'foo' == null: 1e+7: 12.223ms
12
- * 'foo' === undefined || 'foo' === null: 1e+7: 12.475ms
13
- * typeof 'foo' === 'undefined' || 'foo' === null: 1e+7: 12.456ms
14
- */
15
-
16
- {
17
- const timeInLoop = (desc, loopCount, fn) => {
18
- const d = `${desc}: ${loopCount.toExponential()}`
19
- console.time(d)
20
- for (let i = 0; i < loopCount; i++) {
21
- fn()
22
- }
23
- console.timeEnd(d)
24
- }
25
-
26
- // console.log('null == null', null == null)
27
- // console.log('undefined == null', undefined == null)
28
- // console.log('1 == null', 1 == null)
29
- // console.log('0 == null', 0 == null)
30
- // console.log('true == null', true == null)
31
- // console.log('false == null', false == null)
32
- // console.log('\'foo\' == null', 'foo' == null)
33
-
34
- // timeInLoop('\'foo\' == null', 1e7, () => 'foo' == null)
35
-
36
- // timeInLoop('\'foo\' === undefined || \'foo\' === null', 1e7, () => 'foo' === undefined || 'foo' === null)
37
-
38
- // timeInLoop('typeof \'foo\' === \'undefined\' || \'foo\' === null', 1e7, () => typeof 'foo' === 'undefined' || 'foo' === null)
39
- }
40
-
41
- /**
42
- * @name typeofNumber
43
- *
44
- * @benchmark
45
- * typeof (1) == 'number': 1e+7: 12.459ms
46
- * (1).constructor == Number: 1e+7: 12.729ms
47
- */
48
-
49
- // timeInLoop('typeof (1) == \'number\'', 1e7, () => { typeof (1) == 'number' })
50
-
51
- // timeInLoop('(1).constructor == Number', 1e7, () => { (1).constructor == Number })
52
-
53
- /**
54
- * @name copyArray
55
- *
56
- * @benchmark
57
- * arr.slice(0): 1e+6: 16.683ms
58
- * arr.slice(): 1e+6: 16.358ms
59
- * arr.concat(): 1e+6: 176.57ms
60
- * Array.from(arr): 1e+6: 27.923ms
61
- * arrayFromForLoopPush(arr): 1e+6: 84.221ms
62
- * [...arr]: 1e+6: 23.789ms
63
- */
64
-
65
- const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
66
-
67
- const arrayFromForLoopPush = x => {
68
- const y = []
69
- for (const xi of x) y.push(xi)
70
- return y
71
- }
72
-
73
- // timeInLoop('arr.slice(0)', 1e6, () => arr.slice(0))
74
-
75
- // timeInLoop('arr.slice()', 1e6, () => arr.slice())
76
-
77
- // timeInLoop('arr.concat()', 1e6, () => arr.concat())
78
-
79
- // timeInLoop('Array.from(arr)', 1e6, () => Array.from(arr))
80
-
81
- // timeInLoop('arrayFromForLoopPush(arr)', 1e6, () => arrayFromForLoopPush(arr))
82
-
83
- // timeInLoop('[...arr]', 1e6, () => [...arr])
84
-
85
- /**
86
- * @name copyObject
87
- *
88
- * @benchmark
89
- * Object.assign({}, obj): 1e+6: 163.58ms
90
- * objectFromForLoop(obj): 1e+6: 179.523ms
91
- * { ...obj }: 1e+6: 46.614ms
92
- */
93
-
94
- const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 }
95
-
96
- const objectFromForLoop = x => {
97
- const y = {}
98
- for (const key in x) y[key] = x[key]
99
- return y
100
- }
101
-
102
- // timeInLoop('Object.assign({}, obj)', 1e6, () => Object.assign({}, obj))
103
-
104
- // timeInLoop('objectFromForLoop(obj)', 1e6, () => objectFromForLoop(obj))
105
-
106
- // timeInLoop('{ ...obj }', 1e6, () => ({ ...obj }))
107
-
108
- /**
109
- * @name copySet
110
- *
111
- * @benchmark
112
- * new Set(set): 1e+5: 91.358ms
113
- * setFromForLoop(set): 1e+5: 66.598ms
114
- */
115
-
116
- const set = new Set([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
117
-
118
- const setFromForLoop = x => {
119
- const y = new Set()
120
- for (const item of x) y.add(item)
121
- return y
122
- }
123
-
124
- // timeInLoop('new Set(set)', 1e5, () => new Set(set))
125
-
126
- // timeInLoop('setFromForLoop(set)', 1e5, () => setFromForLoop(set))
127
-
128
- /**
129
- * @name copyMap
130
- *
131
- * @benchmark
132
- * new Map(map): 1e+5: 65.702ms
133
- * mapFromForLoopSpreadOperator(set): 1e+5: 53.743ms
134
- * mapFromForLoopDestructuring(set): 1e+5: 55.4ms
135
- */
136
-
137
- const map = new Map([['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]])
138
-
139
- const mapFromForLoopSpreadOperator = x => {
140
- const y = new Map()
141
- for (const entry of x) y.set(...entry)
142
- return y
143
- }
144
-
145
- const mapFromForLoopDestructuring = x => {
146
- const y = new Map()
147
- for (const [k, v] of x) y.set(k, v)
148
- return y
149
- }
150
-
151
- // timeInLoop('new Map(map)', 1e5, () => new Map(map))
152
-
153
- // timeInLoop('mapFromForLoopSpreadOperator(map)', 1e5, () => mapFromForLoopSpreadOperator(map))
154
-
155
- // timeInLoop('mapFromForLoopDestructuring(map)', 1e5, () => mapFromForLoopDestructuring(map))
156
-
157
- /**
158
- * @name conditionalPropertyAccess
159
- *
160
- * @benchmark
161
- * obj.a.b.c: 1e+7: 12.715ms
162
- * obj.a && obj.a.b && obj.a.b.c: 1e+7: 13.014ms
163
- * obj.a?.b?.c: 1e+7: 12.885ms
164
- */
165
-
166
- {
167
- const obj = { a: { b: { c: 3 } } }
168
-
169
- // timeInLoop('obj.a.b.c', 1e7, () => { obj.a.b.c })
170
-
171
- // timeInLoop('obj.a && obj.a.b && obj.a.b.c', 1e7, () => { obj.a && obj.a.b && obj.a.b.c })
172
-
173
- // timeInLoop('obj.a?.b?.c', 1e7, () => { obj.a?.b?.c })
174
- }
175
-
176
- /**
177
- * @name objectIteration
178
- *
179
- * @benchmark
180
- * forKeyInObj: 1e+6: 20.02ms
181
- * forOwnKeyInObj: 1e+6: 21.986ms
182
- * objectKeysReduce: 1e+6: 225.397ms
183
- * objectValuesIterate: 1e+6: 261.689ms
184
- * objectEntriesIterate: 1e+6: 505.486ms
185
- */
186
-
187
- {
188
- const obj = { a: 1, b: 2, c: 3 }
189
-
190
- const noop = () => {}
191
-
192
- const forKeyInObj = () => {
193
- let total = 0
194
- for (const k in obj) total += obj[k]
195
- return total
196
- }
197
-
198
- const hasOwnProperty = Object.prototype.hasOwnProperty
199
-
200
- const hasOwn = (obj, key) => hasOwnProperty.call(obj, key)
201
-
202
- const forOwnKeyInObj = () => {
203
- let total = 0
204
- for (const k in obj) {
205
- if (hasOwn(obj, k)) {
206
- total += obj[k]
207
- }
208
- }
209
- return total
210
- }
211
-
212
- const add = (a, b) => a + b
213
-
214
- const objectKeysReduce = () => Object.values(obj).reduce(add)
215
-
216
- const objectValues = function* (object) {
217
- for (const key in object) {
218
- yield object[key]
219
- }
220
- }
221
-
222
- const objectValuesIterate = () => {
223
- let total = 0
224
- for (const value of objectValues(obj)) total += value
225
- return total
226
- }
227
-
228
- const objectEntriesIterate = () => {
229
- let total = 0
230
- for (const [key, value] of Object.entries(obj)) total += value
231
- return total
232
- }
233
-
234
- // const func = forKeyInObj
235
- // const func = forOwnKeyInObj
236
- // const func = objectKeysReduce
237
- // const func = objectValuesIterate
238
- // const func = objectEntriesIterate
239
-
240
- // console.log(func())
241
- // timeInLoop(func.name, 1e6, func)
242
- }
243
-
244
- /**
245
- * @name functionCalls
246
- *
247
- * @benchmark
248
- * regularCall: 1e+7: 13.045ms
249
- * protoCall: 1e+7: 13.261ms
250
- * boundProtoCall: 1e+7: 13.025ms
251
- * protoApply: 1e+7: 167.227ms
252
- * boundProtoApply: 1e+7: 161.647ms
253
- */
254
-
255
- {
256
- const identity = value => value
257
-
258
- const identityCall = identity.call.bind(identity)
259
-
260
- const identityApply = identity.apply.bind(identity)
261
-
262
- const hey = 'hey'
263
-
264
- const heyArr = ['hey']
265
-
266
- const regularCall = () => identity(hey)
267
-
268
- const protoCall = () => identity.call(null, hey)
269
-
270
- const boundProtoCall = () => identityCall(null, hey)
271
-
272
- const protoApply = () => identity.apply(null, heyArr)
273
-
274
- const boundProtoApply = () => identityApply(null, heyArr)
275
-
276
- // const func = regularCall
277
- // const func = protoCall
278
- // const func = boundProtoCall
279
- // const func = protoApply
280
- // const func = boundProtoApply
281
-
282
- // console.log(func())
283
- // timeInLoop(func.name, 1e7, func)
284
- }
285
-
286
- /**
287
- * @name async-await
288
- *
289
- * @benchmark
290
- * async-add: 1e+6: 111.432ms
291
- * async-add-return-await: 1e+6: 238.221ms
292
- */
293
-
294
- {
295
- const add = (a, b) => a + b
296
-
297
- // timeInLoop.async('async-add', 1e6, async () => add(1, 2))
298
-
299
- // timeInLoop.async('async-add-return-await', 1e6, async () => await add(1, 2))
300
- }
301
-
302
- /**
303
- * @name functionCreation
304
- *
305
- * @benchmark
306
- * () => {}: 1e+8: 102.585ms
307
- * function hey() {}: 1e+8: 100.069ms
308
- * Function(): 1e+6: 557.682ms
309
- * new Function(): 1e+6: 566.321ms
310
- */
311
-
312
- // timeInLoop('() => {}', 1e8, () => { () => {} })
313
-
314
- // timeInLoop('function hey() {}', 1e8, () => { function hey() {} })
315
-
316
- // timeInLoop('Function()', 1e6, () => { Function() })
317
-
318
- // timeInLoop('new Function()', 1e6, () => { new Function() })
319
-
320
- /**
321
- * @name isArray
322
- *
323
- * @benchmark
324
- * nativeArrayIsArray: 1e+7: 14.438ms
325
- * preES5IsArray: 1e+7: 174.324ms
326
- */
327
-
328
- {
329
- const nativeArrayIsArray = Array.isArray
330
-
331
- var str = {}.toString;
332
-
333
- const preES5IsArray = function (obj) {
334
- try {
335
- return str.call(obj) === '[object Array]';
336
- }
337
- catch (e) {
338
- return false;
339
- }
340
- };
341
-
342
- // timeInLoop('nativeArrayIsArray', 1e7, () => nativeArrayIsArray([]))
343
-
344
- // timeInLoop('preES5IsArray', 1e7, () => preES5IsArray([]))
345
- }
346
-
347
- /**
348
- * @name arrayPush
349
- *
350
- * @benchmark
351
- * arrayPushArrayLength([], 1): 1e+7: 309.364ms
352
- * arrayPushByProtoBind(array, 1): 1e+7: 405.707ms
353
- * array.push(1): 1e+7: 307.791ms
354
- *
355
- * @note Bo5
356
- */
357
-
358
- const arrayPushArrayLength = function (array, value, index) {
359
- array[array.length] = value
360
- return array
361
- }
362
-
363
- const arrayProtoPush = Array.prototype.push
364
-
365
- {
366
- const array = []
367
-
368
- const arrayPushByProtoBind = arrayProtoPush.bind(array)
369
-
370
- // timeInLoop('arrayPushArrayLength(array, 1)', 1e7, () => arrayPushArrayLength(array, 1))
371
-
372
- // timeInLoop('arrayPushByProtoBind(array, 1)', 1e7, () => arrayPushByProtoBind(1))
373
-
374
- // timeInLoop('array.push(1)', 1e7, () => array.push(1))
375
- }
376
-
377
- const objectAssign1 = Object.assign
378
-
379
- const objectAssign2 = (a, b) => ({ ...a, ...b })
380
-
381
- /**
382
- * @name objectAssign
383
- *
384
- * @benchmark
385
- * objectAssign1: 1e+6: 55.65ms
386
- * objectAssign2: 1e+6: 113.392ms
387
- */
388
-
389
- {
390
- const objectA = { a: 1, b: 2, c: 3 }
391
-
392
- const objectB = { d: 4, e: 5 }
393
-
394
- // timeInLoop('objectAssign1', 1e6, () => objectAssign1(objectA, objectB))
395
-
396
- // timeInLoop('objectAssign2', 1e6, () => objectAssign2(objectA, objectB))
397
- }
398
-
399
- const arrayForEach01 = (array, func) => array.forEach(func)
400
-
401
- const arrayForEach02 = function (array, func) {
402
- const arrayLength = array.length
403
- let index = -1
404
- while (++index < arrayLength) {
405
- func(index)
406
- }
407
- }
408
-
409
- const arrayForEach03 = function (array, func) {
410
- for (const item of array) {
411
- func(item)
412
- }
413
- }
414
-
415
- /**
416
- * @name arrayForEach
417
- *
418
- * @benchmark
419
- * arrayForEach01: 1e+7: 57.411ms
420
- * arrayForEach02: 1e+7: 86.507ms
421
- * arrayForEach03: 1e+7: 132.766ms
422
- */
423
-
424
- {
425
- const numbers = [1, 2, 3, 4, 5]
426
-
427
- const identity = value => value
428
-
429
- // timeInLoop('arrayForEach01', 1e7, thunkify2(arrayForEach01, numbers, identity))
430
-
431
- // timeInLoop('arrayForEach02', 1e7, thunkify2(arrayForEach02, numbers, identity))
432
-
433
- // timeInLoop('arrayForEach03', 1e7, thunkify2(arrayForEach03, numbers, identity))
434
- }
435
-
436
- const toBoolean1 = Boolean
437
-
438
- const toBoolean2 = value => !!value
439
-
440
- /**
441
- * @name typeCastingBoolean
442
- *
443
- * @benchmark
444
- * Boolean(true): 1e+7: 12.723ms
445
- * !!true: 1e+7: 13.632ms
446
- */
447
-
448
- // timeInLoop('Boolean(true)', 1e7, () => Boolean(true))
449
-
450
- // timeInLoop('!!true', 1e7, () => toBoolean2(true))
451
-
452
- /**
453
- * @name argumentsVsArgs
454
- *
455
- * @benchmark
456
- * evaluateArguments(): 1e+7: 17.668ms
457
- * evaluateArgs(): 1e+7: 17.169ms
458
- */
459
-
460
- const evaluateArguments = function () {
461
- arguments
462
- }
463
-
464
- const evaluateArgs = function (...args) {
465
- args
466
- }
467
-
468
- // timeInLoop('evaluateArguments()', 1e7, () => evaluateArguments())
469
-
470
- // timeInLoop('evaluateArgs()', 1e7, () => evaluateArgs())
@@ -1,28 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('rubico')
3
- const _ = require('lodash')
4
-
5
- /**
6
- * @name omitRace
7
- *
8
- * @benchmark
9
- * rubico.omit(['a', 'b', 'c'])(object): 1e+6: 599.19ms
10
- * _.omit(['a', 'b', 'c'])(object): 1e+6: 2.651s
11
- *
12
- * 2020-11-30
13
- * rubico.omit(['a', 'b', 'c'])(object): 1e+6: 628.47ms
14
- * _.omit(['a', 'b', 'c'])(object): 1e+6: 2.595s
15
- */
16
-
17
- {
18
- const objectABCDE = { a: 1, b: 2, c: 3, d: 4, e: 5 }
19
-
20
- const keys = ['a', 'b', 'c']
21
-
22
- // console.log(rubico.omit(keys)(objectABCDE))
23
- // console.log(_.omit(objectABCDE, keys))
24
-
25
- // timeInLoop("rubico.omit(['a', 'b', 'c'])(object)", 1e6, () => rubico.omit(keys)(objectABCDE))
26
-
27
- // timeInLoop("_.omit(['a', 'b', 'c'])(object)", 1e6, () => _.omit(objectABCDE, keys))
28
- }
@@ -1,51 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('..')
3
-
4
- const { or } = rubico
5
-
6
- const isPromise = value => value != null && typeof value.then == 'function'
7
-
8
- const isOdd = x => x % 2 == 1
9
-
10
- const threeOddChecks = number => isOdd(number) || isOdd(number) || isOdd(number)
11
-
12
- const threeIsOdd = or([isOdd, isOdd, isOdd])
13
-
14
- const arrayOr = (fns, x) => {
15
- const promises = []
16
- for (let i = 0; i < fns.length; i++) {
17
- const point = fns[i](x)
18
- if (isPromise(point)) promises.push(point)
19
- else if (point) return (promises.length > 0
20
- ? Promise.all(promises).then(() => true)
21
- : true)
22
- }
23
- return (promises.length > 0
24
- ? Promise.all(promises).then(res => res.some(x => x))
25
- : false)
26
- }
27
-
28
- const isOddArray = [isOdd, isOdd, isOdd]
29
-
30
- /**
31
- * @name or
32
- *
33
- * @benchmark
34
- * isOdd(value) || isOdd(value) || isOdd(value): 1e+6: 5.96ms
35
- * arrayOr([isOdd, isOdd, isOdd]): 1e+6: 27.249ms
36
- * or([isOdd, isOdd, isOdd]): 1e+6: 15.245ms
37
- *
38
- * @remarks
39
- * ...args slows down from ~48ms
40
- */
41
-
42
- {
43
- // console.log(arrayOr(isOddArray, 2))
44
- // console.log(or([isOdd, isOdd, isOdd])(2))
45
-
46
- // timeInLoop('isOdd(value) || isOdd(value) || isOdd(value)', 1e6, () => threeOddChecks(2))
47
-
48
- // timeInLoop('arrayOr([isOdd, isOdd, isOdd])', 1e6, () => arrayOr(isOddArray, 2))
49
-
50
- // timeInLoop('or([isOdd, isOdd, isOdd])', 1e6, () => threeIsOdd(2))
51
- }
@@ -1,24 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('rubico')
3
- const _ = require('lodash')
4
-
5
- /**
6
- * @name pickRace
7
- *
8
- * @benchmark
9
- * rubico.pick(['a', 'b', 'c'])(object): 1e+6: 165.468ms
10
- * _.pick(['a', 'b', 'c'])(object): 1e+6: 1.324s
11
- */
12
-
13
- {
14
- const objectABCDE = { a: 1, b: 2, c: 3, d: 4, e: 5 }
15
-
16
- const keys = ['a', 'b', 'c']
17
-
18
- // console.log(rubico.pick(keys)(objectABCDE))
19
- // console.log(_.pick(objectABCDE, keys))
20
-
21
- // timeInLoop("rubico.pick(['a', 'b', 'c'])(object)", 1e6, () => rubico.pick(keys)(objectABCDE))
22
-
23
- // timeInLoop("_.pick(['a', 'b', 'c'])(object)", 1e6, () => _.pick(objectABCDE, keys))
24
- }