rubico 2.1.0 → 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 (499) hide show
  1. package/README.md +2 -0
  2. package/_internal/genericTransform.js +30 -28
  3. package/dist/Transducer.es.js +1 -1
  4. package/dist/Transducer.es.min.js +1 -1
  5. package/dist/Transducer.js +1 -1
  6. package/dist/Transducer.min.js +1 -1
  7. package/dist/Transducer.mjs +1 -1
  8. package/dist/__.es.js +1 -1
  9. package/dist/__.es.min.js +1 -1
  10. package/dist/__.js +1 -1
  11. package/dist/__.min.js +1 -1
  12. package/dist/__.mjs +1 -1
  13. package/dist/all.es.js +1 -1
  14. package/dist/all.es.min.js +1 -1
  15. package/dist/all.js +1 -1
  16. package/dist/all.min.js +1 -1
  17. package/dist/all.mjs +1 -1
  18. package/dist/always.es.js +1 -1
  19. package/dist/always.es.min.js +1 -1
  20. package/dist/always.js +1 -1
  21. package/dist/always.min.js +1 -1
  22. package/dist/always.mjs +1 -1
  23. package/dist/and.es.js +1 -1
  24. package/dist/and.es.min.js +1 -1
  25. package/dist/and.js +1 -1
  26. package/dist/and.min.js +1 -1
  27. package/dist/and.mjs +1 -1
  28. package/dist/assign.es.js +1 -1
  29. package/dist/assign.es.min.js +1 -1
  30. package/dist/assign.js +1 -1
  31. package/dist/assign.min.js +1 -1
  32. package/dist/assign.mjs +1 -1
  33. package/dist/compose.es.js +1 -1
  34. package/dist/compose.es.min.js +1 -1
  35. package/dist/compose.js +1 -1
  36. package/dist/compose.min.js +1 -1
  37. package/dist/compose.mjs +1 -1
  38. package/dist/curry.es.js +1 -1
  39. package/dist/curry.es.min.js +1 -1
  40. package/dist/curry.js +1 -1
  41. package/dist/curry.min.js +1 -1
  42. package/dist/curry.mjs +1 -1
  43. package/dist/eq.es.js +1 -1
  44. package/dist/eq.es.min.js +1 -1
  45. package/dist/eq.js +1 -1
  46. package/dist/eq.min.js +1 -1
  47. package/dist/eq.mjs +1 -1
  48. package/dist/every.es.js +1 -1
  49. package/dist/every.es.min.js +1 -1
  50. package/dist/every.js +1 -1
  51. package/dist/every.min.js +1 -1
  52. package/dist/every.mjs +1 -1
  53. package/dist/filter.es.js +1 -1
  54. package/dist/filter.es.min.js +1 -1
  55. package/dist/filter.js +1 -1
  56. package/dist/filter.min.js +1 -1
  57. package/dist/filter.mjs +1 -1
  58. package/dist/flatMap.es.js +1 -1
  59. package/dist/flatMap.es.min.js +1 -1
  60. package/dist/flatMap.js +1 -1
  61. package/dist/flatMap.min.js +1 -1
  62. package/dist/flatMap.mjs +1 -1
  63. package/dist/forEach.es.js +1 -1
  64. package/dist/forEach.es.min.js +1 -1
  65. package/dist/forEach.js +1 -1
  66. package/dist/forEach.min.js +1 -1
  67. package/dist/forEach.mjs +1 -1
  68. package/dist/get.es.js +1 -1
  69. package/dist/get.es.min.js +1 -1
  70. package/dist/get.js +1 -1
  71. package/dist/get.min.js +1 -1
  72. package/dist/get.mjs +1 -1
  73. package/dist/gt.es.js +1 -1
  74. package/dist/gt.es.min.js +1 -1
  75. package/dist/gt.js +1 -1
  76. package/dist/gt.min.js +1 -1
  77. package/dist/gt.mjs +1 -1
  78. package/dist/gte.es.js +1 -1
  79. package/dist/gte.es.min.js +1 -1
  80. package/dist/gte.js +1 -1
  81. package/dist/gte.min.js +1 -1
  82. package/dist/gte.mjs +1 -1
  83. package/dist/lt.es.js +1 -1
  84. package/dist/lt.es.min.js +1 -1
  85. package/dist/lt.js +1 -1
  86. package/dist/lt.min.js +1 -1
  87. package/dist/lt.mjs +1 -1
  88. package/dist/lte.es.js +1 -1
  89. package/dist/lte.es.min.js +1 -1
  90. package/dist/lte.js +1 -1
  91. package/dist/lte.min.js +1 -1
  92. package/dist/lte.mjs +1 -1
  93. package/dist/map.es.js +1 -1
  94. package/dist/map.es.min.js +1 -1
  95. package/dist/map.js +1 -1
  96. package/dist/map.min.js +1 -1
  97. package/dist/map.mjs +1 -1
  98. package/dist/not.es.js +1 -1
  99. package/dist/not.es.min.js +1 -1
  100. package/dist/not.js +1 -1
  101. package/dist/not.min.js +1 -1
  102. package/dist/not.mjs +1 -1
  103. package/dist/omit.es.js +1 -1
  104. package/dist/omit.es.min.js +1 -1
  105. package/dist/omit.js +1 -1
  106. package/dist/omit.min.js +1 -1
  107. package/dist/omit.mjs +1 -1
  108. package/dist/or.es.js +1 -1
  109. package/dist/or.es.min.js +1 -1
  110. package/dist/or.js +1 -1
  111. package/dist/or.min.js +1 -1
  112. package/dist/or.mjs +1 -1
  113. package/dist/pick.es.js +1 -1
  114. package/dist/pick.es.min.js +1 -1
  115. package/dist/pick.js +1 -1
  116. package/dist/pick.min.js +1 -1
  117. package/dist/pick.mjs +1 -1
  118. package/dist/pipe.es.js +1 -1
  119. package/dist/pipe.es.min.js +1 -1
  120. package/dist/pipe.js +1 -1
  121. package/dist/pipe.min.js +1 -1
  122. package/dist/pipe.mjs +1 -1
  123. package/dist/reduce.es.js +1 -1
  124. package/dist/reduce.es.min.js +1 -1
  125. package/dist/reduce.js +1 -1
  126. package/dist/reduce.min.js +1 -1
  127. package/dist/reduce.mjs +1 -1
  128. package/dist/rubico.es.js +57 -46
  129. package/dist/rubico.es.min.js +2 -2
  130. package/dist/rubico.global.js +57 -46
  131. package/dist/rubico.global.min.js +2 -2
  132. package/dist/rubico.js +57 -46
  133. package/dist/rubico.min.js +2 -2
  134. package/dist/rubico.mjs +57 -46
  135. package/dist/set.es.js +1 -1
  136. package/dist/set.es.min.js +1 -1
  137. package/dist/set.js +1 -1
  138. package/dist/set.min.js +1 -1
  139. package/dist/set.mjs +1 -1
  140. package/dist/some.es.js +1 -1
  141. package/dist/some.es.min.js +1 -1
  142. package/dist/some.js +1 -1
  143. package/dist/some.min.js +1 -1
  144. package/dist/some.mjs +1 -1
  145. package/dist/switchCase.es.js +1 -1
  146. package/dist/switchCase.es.min.js +1 -1
  147. package/dist/switchCase.js +1 -1
  148. package/dist/switchCase.min.js +1 -1
  149. package/dist/switchCase.mjs +1 -1
  150. package/dist/tap.es.js +32 -2
  151. package/dist/tap.es.min.js +2 -2
  152. package/dist/tap.js +32 -2
  153. package/dist/tap.min.js +2 -2
  154. package/dist/tap.mjs +32 -2
  155. package/dist/thunkify.es.js +1 -1
  156. package/dist/thunkify.es.min.js +1 -1
  157. package/dist/thunkify.js +1 -1
  158. package/dist/thunkify.min.js +1 -1
  159. package/dist/thunkify.mjs +1 -1
  160. package/dist/transform.es.js +26 -24
  161. package/dist/transform.es.min.js +2 -2
  162. package/dist/transform.js +26 -24
  163. package/dist/transform.min.js +2 -2
  164. package/dist/transform.mjs +26 -24
  165. package/dist/tryCatch.es.js +1 -1
  166. package/dist/tryCatch.es.min.js +1 -1
  167. package/dist/tryCatch.js +1 -1
  168. package/dist/tryCatch.min.js +1 -1
  169. package/dist/tryCatch.mjs +1 -1
  170. package/dist/x/append.es.js +1 -1
  171. package/dist/x/append.es.min.js +1 -1
  172. package/dist/x/append.js +1 -1
  173. package/dist/x/append.min.js +1 -1
  174. package/dist/x/append.mjs +1 -1
  175. package/dist/x/callProp.es.js +1 -1
  176. package/dist/x/callProp.es.min.js +1 -1
  177. package/dist/x/callProp.js +1 -1
  178. package/dist/x/callProp.min.js +1 -1
  179. package/dist/x/callProp.mjs +1 -1
  180. package/dist/x/defaultsDeep.es.js +1 -1
  181. package/dist/x/defaultsDeep.es.min.js +1 -1
  182. package/dist/x/defaultsDeep.js +1 -1
  183. package/dist/x/defaultsDeep.min.js +1 -1
  184. package/dist/x/defaultsDeep.mjs +1 -1
  185. package/dist/x/differenceWith.es.js +1 -1
  186. package/dist/x/differenceWith.es.min.js +1 -1
  187. package/dist/x/differenceWith.js +1 -1
  188. package/dist/x/differenceWith.min.js +1 -1
  189. package/dist/x/differenceWith.mjs +1 -1
  190. package/dist/x/filterOut.es.js +1 -1
  191. package/dist/x/filterOut.es.min.js +1 -1
  192. package/dist/x/filterOut.js +1 -1
  193. package/dist/x/filterOut.min.js +1 -1
  194. package/dist/x/filterOut.mjs +1 -1
  195. package/dist/x/find.es.js +1 -1
  196. package/dist/x/find.es.min.js +1 -1
  197. package/dist/x/find.js +1 -1
  198. package/dist/x/find.min.js +1 -1
  199. package/dist/x/find.mjs +1 -1
  200. package/dist/x/findIndex.es.js +1 -1
  201. package/dist/x/findIndex.es.min.js +1 -1
  202. package/dist/x/findIndex.js +1 -1
  203. package/dist/x/findIndex.min.js +1 -1
  204. package/dist/x/findIndex.mjs +1 -1
  205. package/dist/x/first.es.js +1 -1
  206. package/dist/x/first.es.min.js +1 -1
  207. package/dist/x/first.js +1 -1
  208. package/dist/x/first.min.js +1 -1
  209. package/dist/x/first.mjs +1 -1
  210. package/dist/x/flatten.es.js +1 -1
  211. package/dist/x/flatten.es.min.js +1 -1
  212. package/dist/x/flatten.js +1 -1
  213. package/dist/x/flatten.min.js +1 -1
  214. package/dist/x/flatten.mjs +1 -1
  215. package/dist/x/groupBy.es.js +1 -1
  216. package/dist/x/groupBy.es.min.js +1 -1
  217. package/dist/x/groupBy.js +1 -1
  218. package/dist/x/groupBy.min.js +1 -1
  219. package/dist/x/groupBy.mjs +1 -1
  220. package/dist/x/has.es.js +1 -1
  221. package/dist/x/has.es.min.js +1 -1
  222. package/dist/x/has.js +1 -1
  223. package/dist/x/has.min.js +1 -1
  224. package/dist/x/has.mjs +1 -1
  225. package/dist/x/identity.es.js +1 -1
  226. package/dist/x/identity.es.min.js +1 -1
  227. package/dist/x/identity.js +1 -1
  228. package/dist/x/identity.min.js +1 -1
  229. package/dist/x/identity.mjs +1 -1
  230. package/dist/x/includes.es.js +1 -1
  231. package/dist/x/includes.es.min.js +1 -1
  232. package/dist/x/includes.js +1 -1
  233. package/dist/x/includes.min.js +1 -1
  234. package/dist/x/includes.mjs +1 -1
  235. package/dist/x/isDeepEqual.es.js +1 -1
  236. package/dist/x/isDeepEqual.es.min.js +1 -1
  237. package/dist/x/isDeepEqual.js +1 -1
  238. package/dist/x/isDeepEqual.min.js +1 -1
  239. package/dist/x/isDeepEqual.mjs +1 -1
  240. package/dist/x/isEmpty.es.js +1 -1
  241. package/dist/x/isEmpty.es.min.js +1 -1
  242. package/dist/x/isEmpty.js +1 -1
  243. package/dist/x/isEmpty.min.js +1 -1
  244. package/dist/x/isEmpty.mjs +1 -1
  245. package/dist/x/isEqual.es.js +1 -1
  246. package/dist/x/isEqual.es.min.js +1 -1
  247. package/dist/x/isEqual.js +1 -1
  248. package/dist/x/isEqual.min.js +1 -1
  249. package/dist/x/isEqual.mjs +1 -1
  250. package/dist/x/isFunction.es.js +1 -1
  251. package/dist/x/isFunction.es.min.js +1 -1
  252. package/dist/x/isFunction.js +1 -1
  253. package/dist/x/isFunction.min.js +1 -1
  254. package/dist/x/isFunction.mjs +1 -1
  255. package/dist/x/isIn.es.js +1 -1
  256. package/dist/x/isIn.es.min.js +1 -1
  257. package/dist/x/isIn.js +1 -1
  258. package/dist/x/isIn.min.js +1 -1
  259. package/dist/x/isIn.mjs +1 -1
  260. package/dist/x/isObject.es.js +1 -1
  261. package/dist/x/isObject.es.min.js +1 -1
  262. package/dist/x/isObject.js +1 -1
  263. package/dist/x/isObject.min.js +1 -1
  264. package/dist/x/isObject.mjs +1 -1
  265. package/dist/x/isString.es.js +1 -1
  266. package/dist/x/isString.es.min.js +1 -1
  267. package/dist/x/isString.js +1 -1
  268. package/dist/x/isString.min.js +1 -1
  269. package/dist/x/isString.mjs +1 -1
  270. package/dist/x/keys.es.js +1 -1
  271. package/dist/x/keys.es.min.js +1 -1
  272. package/dist/x/keys.js +1 -1
  273. package/dist/x/keys.min.js +1 -1
  274. package/dist/x/keys.mjs +1 -1
  275. package/dist/x/last.es.js +1 -1
  276. package/dist/x/last.es.min.js +1 -1
  277. package/dist/x/last.js +1 -1
  278. package/dist/x/last.min.js +1 -1
  279. package/dist/x/last.mjs +1 -1
  280. package/dist/x/maxBy.es.js +1 -1
  281. package/dist/x/maxBy.es.min.js +1 -1
  282. package/dist/x/maxBy.js +1 -1
  283. package/dist/x/maxBy.min.js +1 -1
  284. package/dist/x/maxBy.mjs +1 -1
  285. package/dist/x/noop.es.js +1 -1
  286. package/dist/x/noop.es.min.js +1 -1
  287. package/dist/x/noop.js +1 -1
  288. package/dist/x/noop.min.js +1 -1
  289. package/dist/x/noop.mjs +1 -1
  290. package/dist/x/pluck.es.js +1 -1
  291. package/dist/x/pluck.es.min.js +1 -1
  292. package/dist/x/pluck.js +1 -1
  293. package/dist/x/pluck.min.js +1 -1
  294. package/dist/x/pluck.mjs +1 -1
  295. package/dist/x/prepend.es.js +1 -1
  296. package/dist/x/prepend.es.min.js +1 -1
  297. package/dist/x/prepend.js +1 -1
  298. package/dist/x/prepend.min.js +1 -1
  299. package/dist/x/prepend.mjs +1 -1
  300. package/dist/x/size.es.js +1 -1
  301. package/dist/x/size.es.min.js +1 -1
  302. package/dist/x/size.js +1 -1
  303. package/dist/x/size.min.js +1 -1
  304. package/dist/x/size.mjs +1 -1
  305. package/dist/x/trace.es.js +32 -2
  306. package/dist/x/trace.es.min.js +2 -2
  307. package/dist/x/trace.js +32 -2
  308. package/dist/x/trace.min.js +2 -2
  309. package/dist/x/trace.mjs +32 -2
  310. package/dist/x/unionWith.es.js +1 -1
  311. package/dist/x/unionWith.es.min.js +1 -1
  312. package/dist/x/unionWith.js +1 -1
  313. package/dist/x/unionWith.min.js +1 -1
  314. package/dist/x/unionWith.mjs +1 -1
  315. package/dist/x/uniq.es.js +1 -1
  316. package/dist/x/uniq.es.min.js +1 -1
  317. package/dist/x/uniq.js +1 -1
  318. package/dist/x/uniq.min.js +1 -1
  319. package/dist/x/uniq.mjs +1 -1
  320. package/dist/x/unless.es.js +1 -1
  321. package/dist/x/unless.es.min.js +1 -1
  322. package/dist/x/unless.js +1 -1
  323. package/dist/x/unless.min.js +1 -1
  324. package/dist/x/unless.mjs +1 -1
  325. package/dist/x/values.es.js +1 -1
  326. package/dist/x/values.es.min.js +1 -1
  327. package/dist/x/values.js +1 -1
  328. package/dist/x/values.min.js +1 -1
  329. package/dist/x/values.mjs +1 -1
  330. package/dist/x/when.es.js +1 -1
  331. package/dist/x/when.es.min.js +1 -1
  332. package/dist/x/when.js +1 -1
  333. package/dist/x/when.min.js +1 -1
  334. package/dist/x/when.mjs +1 -1
  335. package/es.js +57 -46
  336. package/index.js +57 -46
  337. package/package.json +43 -2
  338. package/tap.js +15 -4
  339. package/.eslintignore +0 -5
  340. package/.eslintrc.js +0 -330
  341. package/.github/workflows/nodejs.yml +0 -27
  342. package/.vscode/launch.json +0 -25
  343. package/AggregateReducer.test.js +0 -82
  344. package/CHANGELOG.md +0 -310
  345. package/CNAME +0 -1
  346. package/CODE_OF_CONDUCT.md +0 -128
  347. package/CONTRIBUTING.md +0 -4
  348. package/Transducer.test.js +0 -154
  349. package/_config.yml +0 -1
  350. package/_internal/improvedGenericTransform.js +0 -93
  351. package/archive/FlatMappingIterator-2020-09-28.js +0 -68
  352. package/archive/_Promise-2023-05-29.js +0 -93
  353. package/archive/arrayMap2-2023-05-29.js +0 -73
  354. package/archive/benchmarks-v1.9.7/all.js +0 -34
  355. package/archive/benchmarks-v1.9.7/and.js +0 -24
  356. package/archive/benchmarks-v1.9.7/any.js +0 -32
  357. package/archive/benchmarks-v1.9.7/assign.js +0 -174
  358. package/archive/benchmarks-v1.9.7/curry.js +0 -55
  359. package/archive/benchmarks-v1.9.7/eq.js +0 -25
  360. package/archive/benchmarks-v1.9.7/filter.js +0 -1322
  361. package/archive/benchmarks-v1.9.7/flatMap.js +0 -48
  362. package/archive/benchmarks-v1.9.7/forEach.js +0 -33
  363. package/archive/benchmarks-v1.9.7/fork.js +0 -123
  364. package/archive/benchmarks-v1.9.7/get.js +0 -44
  365. package/archive/benchmarks-v1.9.7/gt.js +0 -25
  366. package/archive/benchmarks-v1.9.7/gte.js +0 -25
  367. package/archive/benchmarks-v1.9.7/integration.js +0 -88
  368. package/archive/benchmarks-v1.9.7/lt.js +0 -25
  369. package/archive/benchmarks-v1.9.7/lte.js +0 -25
  370. package/archive/benchmarks-v1.9.7/map.js +0 -892
  371. package/archive/benchmarks-v1.9.7/misc.js +0 -470
  372. package/archive/benchmarks-v1.9.7/omit.js +0 -28
  373. package/archive/benchmarks-v1.9.7/or.js +0 -51
  374. package/archive/benchmarks-v1.9.7/pick.js +0 -24
  375. package/archive/benchmarks-v1.9.7/pipe.js +0 -152
  376. package/archive/benchmarks-v1.9.7/reduce.js +0 -739
  377. package/archive/benchmarks-v1.9.7/switchCase.js +0 -256
  378. package/archive/benchmarks-v1.9.7/tap.js +0 -90
  379. package/archive/benchmarks-v1.9.7/transform.js +0 -218
  380. package/archive/benchmarks-v1.9.7/tryCatch.js +0 -108
  381. package/archive/curry.js +0 -13
  382. package/archive/examples-v1.6.11/browserModule.html +0 -31
  383. package/archive/examples-v1.6.11/browserScript.html +0 -32
  384. package/archive/examples-v1.6.11/coolTransformToConsole.js +0 -1
  385. package/archive/examples-v1.6.11/denoLargeGasMap.js +0 -85
  386. package/archive/examples-v1.6.11/denoServer.js +0 -9
  387. package/archive/examples-v1.6.11/denoServerWithMiddleware.js +0 -55
  388. package/archive/examples-v1.6.11/logTodosRange.js +0 -21
  389. package/archive/examples-v1.6.11/makeARequest.html +0 -46
  390. package/archive/examples-v1.6.11/nodeComplexTransformation.js +0 -106
  391. package/archive/examples-v1.6.11/nodeConditionallyExtractIDs.js +0 -50
  392. package/archive/examples-v1.6.11/nodeFloatingPoint.js +0 -55
  393. package/archive/examples-v1.6.11/nodeGetAllJiraBoards.js +0 -45
  394. package/archive/examples-v1.6.11/nodeGetSocketIOClientsTotalCount.js +0 -34
  395. package/archive/examples-v1.6.11/nodeKafkaConsumer.js +0 -63
  396. package/archive/examples-v1.6.11/nodeMakeMultipleRequests.js +0 -55
  397. package/archive/examples-v1.6.11/nodeOnRecordAddTask.js +0 -34
  398. package/archive/examples-v1.6.11/nodePostRequestWithAuth.js +0 -36
  399. package/archive/examples-v1.6.11/nodeSpeedbackMatchmakingAlgorithm.js +0 -96
  400. package/archive/examples-v1.6.11/nodeTireData.js +0 -36
  401. package/archive/examples-v1.6.11/nodeTripleMap.js +0 -85
  402. package/archive/examples-v1.6.11/squaredOdds.ts +0 -16
  403. package/archive/examples-v1.6.11/transducerMaxBuyer.js +0 -67
  404. package/archive/examples-v1.6.11/transformLogTodosRange.js +0 -31
  405. package/archive/examples-v1.6.11/transformStreamRandomInts.js +0 -19
  406. package/archive/genericReduceConcurrent.js +0 -277
  407. package/archive/index.v0.2.9.js +0 -1685
  408. package/archive/objectValuesGenerator.js +0 -13
  409. package/archive/test.v0.2.9.js +0 -2334
  410. package/bench +0 -65
  411. package/benchmark-output/v1.9.7 +0 -268
  412. package/benchmarks/all.async.js +0 -43
  413. package/benchmarks/all.js +0 -43
  414. package/benchmarks/always.js +0 -15
  415. package/benchmarks/and.async.js +0 -25
  416. package/benchmarks/and.js +0 -25
  417. package/benchmarks/assign.async.js +0 -27
  418. package/benchmarks/assign.js +0 -27
  419. package/benchmarks/curry.js +0 -35
  420. package/benchmarks/eq.async.js +0 -23
  421. package/benchmarks/eq.js +0 -23
  422. package/benchmarks/every.async.js +0 -19
  423. package/benchmarks/every.js +0 -19
  424. package/benchmarks/filter.async.js +0 -32
  425. package/benchmarks/filter.js +0 -38
  426. package/benchmarks/flatMap.async.js +0 -26
  427. package/benchmarks/flatMap.js +0 -38
  428. package/benchmarks/get.async.js +0 -19
  429. package/benchmarks/get.js +0 -39
  430. package/benchmarks/gt.async.js +0 -23
  431. package/benchmarks/gt.js +0 -23
  432. package/benchmarks/gte.async.js +0 -23
  433. package/benchmarks/gte.js +0 -23
  434. package/benchmarks/lt.async.js +0 -23
  435. package/benchmarks/lt.js +0 -23
  436. package/benchmarks/lte.async.js +0 -23
  437. package/benchmarks/lte.js +0 -23
  438. package/benchmarks/map.async.js +0 -43
  439. package/benchmarks/map.js +0 -40
  440. package/benchmarks/misc/Promise.js +0 -26
  441. package/benchmarks/misc/isPromise.js +0 -30
  442. package/benchmarks/misc/promiseAll.js +0 -36
  443. package/benchmarks/not.js +0 -23
  444. package/benchmarks/omit.js +0 -38
  445. package/benchmarks/or.async.js +0 -25
  446. package/benchmarks/or.js +0 -25
  447. package/benchmarks/pick.js +0 -38
  448. package/benchmarks/pipe.async.js +0 -47
  449. package/benchmarks/pipe.js +0 -47
  450. package/benchmarks/reduce.async.js +0 -32
  451. package/benchmarks/reduce.js +0 -38
  452. package/benchmarks/set.async.js +0 -19
  453. package/benchmarks/set.js +0 -41
  454. package/benchmarks/some.async.js +0 -19
  455. package/benchmarks/some.js +0 -19
  456. package/benchmarks/switchCase.async.js +0 -27
  457. package/benchmarks/switchCase.js +0 -55
  458. package/benchmarks/tap.js +0 -15
  459. package/benchmarks/thunkify.js +0 -15
  460. package/benchmarks/transform.async.js +0 -27
  461. package/benchmarks/transform.js +0 -40
  462. package/benchmarks/tryCatch.async.js +0 -25
  463. package/benchmarks/tryCatch.js +0 -32
  464. package/build +0 -472
  465. package/dist-test.js +0 -37
  466. package/examples/type-to-search-wiki/README.md +0 -19
  467. package/examples/type-to-search-wiki/package.json +0 -13
  468. package/examples/type-to-search-wiki/src/app.js +0 -46
  469. package/examples/type-to-search-wiki/src/index.html +0 -18
  470. package/import-test.html +0 -73
  471. package/memory-usage/reduce.js +0 -40
  472. package/monad/AsyncPool.js +0 -0
  473. package/monad/BrokenPromise.js +0 -63
  474. package/monad/BrokenPromise.test.js +0 -22
  475. package/monad/Cancellable.js +0 -84
  476. package/monad/Cancellable.memoryUsage.js +0 -60
  477. package/monad/Cancellable.test.js +0 -20
  478. package/monad/Function.js +0 -0
  479. package/monad/Instance.benchmark.js +0 -378
  480. package/monad/Instance.js +0 -351
  481. package/monad/Instance.test.js +0 -445
  482. package/monad/Mux.benchmark.js +0 -29
  483. package/monad/Mux.js +0 -589
  484. package/monad/Mux.test.js +0 -512
  485. package/monad/PossiblePromise.benchmark.js +0 -87
  486. package/monad/PossiblePromise.js +0 -144
  487. package/monad/PossiblePromise.test.js +0 -89
  488. package/monad/README.md +0 -75
  489. package/monad/Reducer.js +0 -0
  490. package/monad/Sequence.benchmark.js +0 -42
  491. package/monad/Sequence.js +0 -36
  492. package/monad/SpecScript.js +0 -0
  493. package/monad/Stack.js +0 -0
  494. package/monad/Struct.benchmark.js +0 -154
  495. package/monad/Struct.js +0 -249
  496. package/monad/Struct.test.js +0 -237
  497. package/rubico.js +0 -66
  498. package/test.js +0 -4242
  499. package/tmp.js +0 -1
@@ -1,48 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const { flatMap } = require('..')
3
- const R = require('ramda')
4
- const _ = require('lodash')
5
- const _fp = require('lodash/fp')
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))
33
-
34
- const flatMapDuplicateArray = flatMap(duplicateArray)
35
-
36
- // timeInLoop('flatMap(duplicate)(array)', 1e5, () => flatMap(duplicateArray)(numbersArray))
37
-
38
- // timeInLoop('R.chain(duplicate, array)', 1e5, () => R.chain(duplicateArray, numbersArray))
39
-
40
- // timeInLoop('_fp.flatMap(duplicate, array)', 1e5, () => _fp.flatMap(duplicateArray, numbersArray))
41
-
42
- // timeInLoop('flatMap(identity)(array)', 1e5, () => flatMap(identity)(numbersArray))
43
-
44
- // timeInLoop('R.chain(identity, array)', 1e5, () => R.chain(identity, numbersArray))
45
-
46
- // timeInLoop('_fp.flatMap(identity, array)', 1e5, () => _fp.flatMap(identity, numbersArray))
47
- }
48
-
@@ -1,33 +0,0 @@
1
- const timeInLoop = require('./timeInLoop')
2
- const forEach = require('./forEach')
3
- const _ = require('lodash')
4
- const R = require('ramda')
5
-
6
- const _forEach = _.forEach
7
-
8
- const RForEach = R.forEach
9
-
10
- /**
11
- * @name forEachRace
12
- *
13
- * @benchmark
14
- * forEach: 1e+6: 16.504ms
15
- * _forEach: 1e+6: 85.831ms
16
- * RForEach: 1e+6: 21.437ms
17
- */
18
-
19
- {
20
- const numbers = [1, 2, 3, 4, 5]
21
-
22
- const identity = value => value
23
-
24
- // forEach(console.log)(numbers)
25
- // _forEach(numbers, console.log)
26
- // RForEach(console.log, numbers)
27
-
28
- // timeInLoop('forEach', 1e6, () => forEach(identity)(numbers))
29
-
30
- // timeInLoop('_forEach', 1e6, () => _forEach(numbers, identity))
31
-
32
- // timeInLoop('RForEach', 1e6, () => RForEach(identity, numbers))
33
- }
@@ -1,123 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const { fork } = require('..')
3
-
4
- const isPromise = value => value != null && typeof value.then == 'function'
5
-
6
- /**
7
- * @name promiseObjectAll
8
- *
9
- * @synopsis
10
- * promiseObjectAll(object<Promise|any>) -> Promise<object>
11
- */
12
- const promiseObjectAll = object => new Promise(function (resolve) {
13
- const result = {}
14
- let numPromises = 0
15
- for (const key in object) {
16
- const value = object[key]
17
- if (isPromise(value)) {
18
- numPromises += 1
19
- value.then((key => function (res) {
20
- result[key] = res
21
- numPromises -= 1
22
- if (numPromises == 0) resolve(result)
23
- })(key))
24
- } else {
25
- result[key] = value
26
- }
27
- }
28
- if (numPromises == 0) resolve(result)
29
- })
30
-
31
- /**
32
- * @name arrayFork
33
- *
34
- * @benchmark
35
- * arrayFork1: 1e+5: 26.814ms
36
- * arrayFork2: 1e+5: 19.675ms
37
- */
38
-
39
- const funcAll1 = funcs => function allFuncs(...args) {
40
- let isAsync = false
41
- const result = funcs.map(func => {
42
- const resultItem = func.apply(null, args)
43
- if (isPromise(resultItem)) isAsync = true
44
- return resultItem
45
- })
46
- return isAsync ? promiseAll(result) : result
47
- }
48
-
49
- const funcAll2 = funcs => function allFuncs(...args) {
50
- const funcsLength = funcs.length,
51
- result = Array(funcsLength)
52
- let funcsIndex = -1, isAsync = false
53
- while (++funcsIndex < funcsLength) {
54
- const resultItem = funcs[funcsIndex](...args)
55
- if (isPromise(resultItem)) isAsync = true
56
- result[funcsIndex] = resultItem
57
- }
58
- return isAsync ? promiseAll(result) : result
59
- }
60
-
61
- {
62
- const funcs = [
63
- number => number + 1,
64
- number => number + 2,
65
- number => number + 3,
66
- ]
67
-
68
- // console.log(funcAll2(funcs)(2))
69
-
70
- // timeInLoop('arrayFork1', 1e5, () => funcAll1(funcs)(2))
71
-
72
- timeInLoop('arrayFork2', 1e5, () => funcAll2(funcs)(2))
73
- }
74
-
75
- /**
76
- * @name objectFork
77
- *
78
- * @benchmark
79
- * objectFork1: 1e+5: 38.942ms
80
- * objectFork2: 1e+5: 34.967ms
81
- */
82
-
83
- const funcObjectAll1 = funcs => function objectAllFuncs(...args) {
84
- const result = {}, promises = []
85
- for (const key in funcs) {
86
- const resultItem = funcs[key].apply(null, args)
87
- if (isPromise(resultItem)) {
88
- promises.push(resultItem.then(res => {
89
- result[key] = res
90
- }))
91
- } else {
92
- result[key] = resultItem
93
- }
94
- }
95
- return promises.length == 0 ? result : promiseAll(promises).then(() => result)
96
- }
97
-
98
- const funcObjectAll2 = funcs => function objectAllFuncs(...args) {
99
- const result = {}
100
- let isAsync = false
101
- for (const key in funcs) {
102
- const resultItem = funcs[key](...args)
103
- if (isPromise(resultItem)) isAsync = true
104
- result[key] = resultItem
105
- }
106
- return isAsync ? promiseObjectAll(result) : result
107
- }
108
-
109
- {
110
- const funcs = {
111
- a: number => number + 1,
112
- b: number => number + 2,
113
- c: number => number + 3,
114
- }
115
-
116
- const arrayFork1 = funcObjectAll1(funcs)
117
-
118
- const arrayFork2 = funcObjectAll2(funcs)
119
-
120
- // timeInLoop('objectFork1', 1e5, () => funcObjectAll1(funcs)(2))
121
-
122
- // timeInLoop('objectFork2', 1e5, () => funcObjectAll2(funcs)(2))
123
- }
@@ -1,44 +0,0 @@
1
- const timeInLoop = require('../x/timeInLoop')
2
- const rubico = require('rubico')
3
- const _ = require('lodash')
4
- const _fp = require('lodash/fp')
5
- const R = require('ramda')
6
-
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
- */
19
-
20
- {
21
- const nestedABC = { a: { b: { c: 1 } } }
22
- const nestedArray5 = [[[[['hey']]]]]
23
-
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]'))
30
-
31
- // timeInLoop('rubico.get(\'a.b.c\')', 1e6, () => rubico.get('a.b.c')(nestedABC))
32
-
33
- // timeInLoop('_.get(\'a.b.c\')', 1e6, () => _.get(nestedABC, 'a.b.c'))
34
-
35
- // timeInLoop('rubico.get(\'a\')', 1e6, () => rubico.get('a')(nestedABC))
36
-
37
- // timeInLoop('_.get(\'a\')', 1e6, () => _.get(nestedABC, 'a'))
38
-
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]'))
44
- }
@@ -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 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
- */
14
-
15
- const rubicoGt = rubico.gt(1, 0)
16
-
17
- // console.log(rubicoGt())
18
- // console.log(_.gt(1, 0))
19
- // console.log(R.gt(1, 0))
20
-
21
- // timeInLoop('rubico.gt(1, 0)', 1e7, () => rubicoGt())
22
-
23
- // timeInLoop('_.gt(1, 0)', 1e7, () => _.gt(1, 0))
24
-
25
- // timeInLoop('R.gt(1, 0)', 1e7, () => R.gt(1, 0))
@@ -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 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
- */
14
-
15
- const rubicoGte = rubico.gte(1, 0)
16
-
17
- // console.log(rubicoGte())
18
- // console.log(_.gte(1, 0))
19
- // console.log(R.gte(1, 0))
20
-
21
- // timeInLoop('rubico.gte(1, 0)', 1e7, () => rubicoGte())
22
-
23
- // timeInLoop('_.gte(1, 0)', 1e7, () => _.gte(1, 0))
24
-
25
- // timeInLoop('R.gte(1, 0)', 1e7, () => R.gte(1, 0))
@@ -1,88 +0,0 @@
1
- const rubico = require('..')
2
- const timeInLoop = require('../x/timeInLoop')
3
-
4
- const {
5
- pipe, fork, assign,
6
- tap, tryCatch, switchCase,
7
- map, filter, reduce, transform, flatMap,
8
- any, all, and, or, not,
9
- eq, gt, lt, gte, lte,
10
- get, pick, omit,
11
- } = rubico
12
-
13
- /**
14
- * @name arrayExtend
15
- *
16
- * @synopsis
17
- * arrayExtend(array Array, values Array) -> array
18
- */
19
- const arrayExtend = (array, values) => {
20
- const arrayLength = array.length,
21
- valuesLength = values.length
22
- let valuesIndex = -1
23
- while (++valuesIndex < valuesLength) {
24
- array[arrayLength + valuesIndex] = values[valuesIndex]
25
- }
26
- return array
27
- }
28
-
29
- const arrayPush = function (array, value) {
30
- array.push(value)
31
- return array
32
- }
33
-
34
- const square = number => number ** 2
35
-
36
- const isOdd = number => number % 2 == 1
37
-
38
- const squaredOddsConcatReducerVanilla = function (array, number) {
39
- if (isOdd(number)) {
40
- arrayPush(array, square(number))
41
- }
42
- return array
43
- }
44
-
45
- const squaredOddsConcatReducerTransduced = pipe([
46
- filter(isOdd),
47
- map(square),
48
- ])(arrayPush)
49
-
50
- const add = (a, b) => a + b
51
-
52
- const squaredOddsAddReducerVanilla = function (total, number) {
53
- if (isOdd(number)) {
54
- return add(total, square(number))
55
- }
56
- return total
57
- }
58
-
59
- const squaredOddsAddReducerTransduced = pipe([
60
- filter(isOdd),
61
- map(square),
62
- ])(add)
63
-
64
- /**
65
- * @name squaredOddsTransducer
66
- *
67
- * @benchmark
68
- * squaredOddsConcatReducerVanilla: 1e+6: 71.788ms
69
- * squaredOddsConcatReducerTransduced: 1e+6: 87.329ms
70
- * squaredOddsAddReducerVanilla: 1e+6: 24.665ms
71
- * squaredOddsAddReducerTransduced: 1e+6: 38.881ms
72
- */
73
-
74
- {
75
- const numbers = [1, 2, 3, 4, 5]
76
- // console.log(numbers.reduce(squaredOddsConcatReducerVanilla, []))
77
- // console.log(numbers.reduce(squaredOddsConcatReducerTransduced, []))
78
- // console.log(numbers.reduce(squaredOddsAddReducerVanilla, 0))
79
- // console.log(numbers.reduce(squaredOddsAddReducerTransduced, 0))
80
-
81
- // timeInLoop('squaredOddsConcatReducerVanilla', 1e6, () => numbers.reduce(squaredOddsConcatReducerVanilla, []))
82
-
83
- // timeInLoop('squaredOddsConcatReducerTransduced', 1e6, () => numbers.reduce(squaredOddsConcatReducerTransduced, []))
84
-
85
- // timeInLoop('squaredOddsAddReducerVanilla', 1e6, () => numbers.reduce(squaredOddsAddReducerVanilla, 0))
86
-
87
- // timeInLoop('squaredOddsAddReducerTransduced', 1e6, () => numbers.reduce(squaredOddsAddReducerTransduced, 0))
88
- }
@@ -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 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
- */
14
-
15
- const rubicoLt = rubico.lt(1, 0)
16
-
17
- // console.log(rubicoLt())
18
- // console.log(_.lt(1, 0))
19
- // console.log(R.lt(1, 0))
20
-
21
- // timeInLoop('rubico.lt(1, 0)', 1e7, () => rubicoLt())
22
-
23
- // timeInLoop('_.lt(1, 0)', 1e7, () => _.lt(1, 0))
24
-
25
- // timeInLoop('R.lt(1, 0)', 1e7, () => R.lt(1, 0))
@@ -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 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
- */
14
-
15
- const rubicoLte = rubico.lte(1, 0)
16
-
17
- // console.log(rubicoLte())
18
- // console.log(_.lte(1, 0))
19
- // console.log(R.lte(1, 0))
20
-
21
- // timeInLoop('rubico.lte(1, 0)', 1e7, () => rubicoLte())
22
-
23
- // timeInLoop('_.lte(1, 0)', 1e7, () => _.lte(1, 0))
24
-
25
- // timeInLoop('R.lte(1, 0)', 1e7, () => R.lte(1, 0))