rubico 1.9.7 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +3 -2
  3. package/.github/workflows/nodejs.yml +1 -1
  4. package/AggregateReducer.js +19 -0
  5. package/AggregateReducer.test.js +82 -0
  6. package/CHANGELOG.md +22 -1
  7. package/README.md +158 -81
  8. package/Transducer.js +75 -26
  9. package/Transducer.test.js +117 -0
  10. package/_internal/ComparisonOperator.js +68 -0
  11. package/_internal/File.js +41 -0
  12. package/_internal/FlatMappingAsyncIterator.js +4 -4
  13. package/_internal/FlatMappingIterator.js +1 -1
  14. package/_internal/TimeInLoopSuite.js +138 -0
  15. package/_internal/areAnyValuesPromises.js +23 -0
  16. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  17. package/_internal/arrayExtend.js +3 -2
  18. package/_internal/arrayFilter.js +3 -4
  19. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  20. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  21. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  22. package/_internal/curry4.test.js +25 -0
  23. package/_internal/curry5.test.js +29 -0
  24. package/_internal/curryArgs2.js +43 -0
  25. package/_internal/curryArgs3.test.js +21 -0
  26. package/_internal/curryArgs4.js +65 -0
  27. package/_internal/curryArgs4.test.js +25 -0
  28. package/_internal/equals.js +13 -0
  29. package/_internal/findAllFilePaths.js +22 -0
  30. package/_internal/funcApply.js +2 -0
  31. package/_internal/funcCall.js +14 -0
  32. package/_internal/functionArrayAll.js +26 -0
  33. package/_internal/functionArrayAllSeries.js +55 -0
  34. package/_internal/functionObjectAll.js +32 -0
  35. package/_internal/genericReduce.js +4 -22
  36. package/_internal/genericTransform.js +15 -15
  37. package/_internal/improvedGenericTransform.js +93 -0
  38. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  39. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  40. package/_internal/leftResolverRightResolverCompare.js +19 -0
  41. package/_internal/leftResolverRightValueCompare.js +16 -0
  42. package/_internal/leftValueRightResolverCompare.js +16 -0
  43. package/_internal/objectReduce.js +0 -1
  44. package/_internal/pathResolve.js +6 -0
  45. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  46. package/_internal/reducerFlatMap.js +4 -4
  47. package/_internal/reducerFlatten.js +1 -1
  48. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  49. package/_internal/timeInLoop.js +37 -0
  50. package/_internal/timeInLoop.test.js +18 -0
  51. package/_internal/timeInLoopAsync.js +35 -0
  52. package/_internal/timeInLoopAsync.test.js +22 -0
  53. package/all.js +106 -40
  54. package/and.js +54 -36
  55. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  56. package/archive/_Promise-2023-05-29.js +93 -0
  57. package/archive/arrayMap2-2023-05-29.js +73 -0
  58. package/archive/benchmarks-v1.9.7/all.js +34 -0
  59. package/archive/benchmarks-v1.9.7/and.js +24 -0
  60. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  61. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  62. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  63. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  64. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  65. package/archive/benchmarks-v1.9.7/get.js +44 -0
  66. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  67. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  69. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  70. package/archive/benchmarks-v1.9.7/map.js +892 -0
  71. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  72. package/archive/benchmarks-v1.9.7/or.js +51 -0
  73. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  74. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  75. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  76. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  77. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  78. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  79. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  80. package/assign.js +18 -8
  81. package/bench +65 -0
  82. package/benchmark-output/v1.9.7 +268 -0
  83. package/benchmarks/all.async.js +43 -0
  84. package/benchmarks/all.js +42 -33
  85. package/benchmarks/always.js +15 -0
  86. package/benchmarks/and.async.js +25 -0
  87. package/benchmarks/and.js +20 -19
  88. package/benchmarks/assign.async.js +27 -0
  89. package/benchmarks/assign.js +20 -167
  90. package/benchmarks/curry.js +34 -54
  91. package/benchmarks/eq.async.js +23 -0
  92. package/benchmarks/eq.js +17 -19
  93. package/benchmarks/every.async.js +19 -0
  94. package/benchmarks/every.js +19 -0
  95. package/benchmarks/filter.async.js +32 -0
  96. package/benchmarks/filter.js +27 -1311
  97. package/benchmarks/flatMap.async.js +26 -0
  98. package/benchmarks/flatMap.js +26 -36
  99. package/benchmarks/get.async.js +19 -0
  100. package/benchmarks/get.js +27 -32
  101. package/benchmarks/gt.async.js +23 -0
  102. package/benchmarks/gt.js +17 -19
  103. package/benchmarks/gte.async.js +23 -0
  104. package/benchmarks/gte.js +17 -19
  105. package/benchmarks/lt.async.js +23 -0
  106. package/benchmarks/lt.js +17 -19
  107. package/benchmarks/lte.async.js +23 -0
  108. package/benchmarks/lte.js +17 -19
  109. package/benchmarks/map.async.js +43 -0
  110. package/benchmarks/map.js +24 -876
  111. package/benchmarks/misc/Promise.js +26 -0
  112. package/benchmarks/misc/isPromise.js +30 -0
  113. package/benchmarks/misc/promiseAll.js +36 -0
  114. package/benchmarks/not.js +23 -0
  115. package/benchmarks/omit.js +30 -20
  116. package/benchmarks/or.async.js +25 -0
  117. package/benchmarks/or.js +23 -49
  118. package/benchmarks/pick.js +30 -16
  119. package/benchmarks/pipe.async.js +47 -0
  120. package/benchmarks/pipe.js +46 -151
  121. package/benchmarks/reduce.async.js +32 -0
  122. package/benchmarks/reduce.js +27 -728
  123. package/benchmarks/set.async.js +19 -0
  124. package/benchmarks/set.js +41 -0
  125. package/benchmarks/some.async.js +19 -0
  126. package/benchmarks/some.js +19 -0
  127. package/benchmarks/switchCase.async.js +27 -0
  128. package/benchmarks/switchCase.js +55 -256
  129. package/benchmarks/tap.js +10 -85
  130. package/benchmarks/thunkify.js +15 -0
  131. package/benchmarks/transform.async.js +27 -0
  132. package/benchmarks/transform.js +28 -206
  133. package/benchmarks/tryCatch.async.js +25 -0
  134. package/benchmarks/tryCatch.js +24 -100
  135. package/build +472 -0
  136. package/compose.js +46 -0
  137. package/dist/Transducer.es.js +481 -0
  138. package/dist/Transducer.es.min.js +7 -0
  139. package/dist/Transducer.js +488 -0
  140. package/dist/Transducer.min.js +8 -0
  141. package/dist/Transducer.mjs +481 -0
  142. package/dist/__.es.js +2 -2
  143. package/dist/__.es.min.js +2 -2
  144. package/dist/__.js +2 -2
  145. package/dist/__.min.js +2 -2
  146. package/dist/__.mjs +2 -2
  147. package/dist/all.es.js +173 -92
  148. package/dist/all.es.min.js +3 -3
  149. package/dist/all.js +173 -92
  150. package/dist/all.min.js +3 -3
  151. package/dist/all.mjs +173 -92
  152. package/dist/always.es.js +2 -2
  153. package/dist/always.es.min.js +2 -2
  154. package/dist/always.js +2 -2
  155. package/dist/always.min.js +2 -2
  156. package/dist/always.mjs +2 -2
  157. package/dist/and.es.js +101 -32
  158. package/dist/and.es.min.js +3 -3
  159. package/dist/and.js +101 -32
  160. package/dist/and.min.js +3 -3
  161. package/dist/and.mjs +101 -32
  162. package/dist/assign.es.js +37 -10
  163. package/dist/assign.es.min.js +3 -3
  164. package/dist/assign.js +37 -10
  165. package/dist/assign.min.js +3 -3
  166. package/dist/assign.mjs +37 -10
  167. package/dist/compose.es.js +71 -0
  168. package/dist/compose.es.min.js +7 -0
  169. package/dist/compose.js +78 -0
  170. package/dist/compose.min.js +8 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.mjs +2 -2
  177. package/dist/eq.es.js +172 -49
  178. package/dist/eq.es.min.js +3 -3
  179. package/dist/eq.js +172 -49
  180. package/dist/eq.min.js +3 -3
  181. package/dist/eq.mjs +172 -49
  182. package/dist/every.es.js +194 -0
  183. package/dist/every.es.min.js +7 -0
  184. package/dist/every.js +201 -0
  185. package/dist/every.min.js +8 -0
  186. package/dist/every.mjs +194 -0
  187. package/dist/filter.es.js +14 -108
  188. package/dist/filter.es.min.js +3 -3
  189. package/dist/filter.js +14 -108
  190. package/dist/filter.min.js +3 -3
  191. package/dist/filter.mjs +14 -108
  192. package/dist/flatMap.es.js +27 -214
  193. package/dist/flatMap.es.min.js +3 -3
  194. package/dist/flatMap.js +27 -214
  195. package/dist/flatMap.min.js +3 -3
  196. package/dist/flatMap.mjs +27 -214
  197. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  198. package/dist/forEach.es.min.js +7 -0
  199. package/dist/{x/forEach.js → forEach.js} +52 -70
  200. package/dist/forEach.min.js +8 -0
  201. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  202. package/dist/get.es.js +60 -5
  203. package/dist/get.es.min.js +3 -3
  204. package/dist/get.js +60 -5
  205. package/dist/get.min.js +3 -3
  206. package/dist/get.mjs +60 -5
  207. package/dist/gt.es.js +171 -48
  208. package/dist/gt.es.min.js +3 -3
  209. package/dist/gt.js +171 -48
  210. package/dist/gt.min.js +3 -3
  211. package/dist/gt.mjs +171 -48
  212. package/dist/gte.es.js +171 -48
  213. package/dist/gte.es.min.js +3 -3
  214. package/dist/gte.js +171 -48
  215. package/dist/gte.min.js +3 -3
  216. package/dist/gte.mjs +171 -48
  217. package/dist/lt.es.js +171 -48
  218. package/dist/lt.es.min.js +3 -3
  219. package/dist/lt.js +171 -48
  220. package/dist/lt.min.js +3 -3
  221. package/dist/lt.mjs +171 -48
  222. package/dist/lte.es.js +171 -48
  223. package/dist/lte.es.min.js +3 -3
  224. package/dist/lte.js +171 -48
  225. package/dist/lte.min.js +3 -3
  226. package/dist/lte.mjs +171 -48
  227. package/dist/map.es.js +12 -101
  228. package/dist/map.es.min.js +3 -3
  229. package/dist/map.js +12 -101
  230. package/dist/map.min.js +3 -3
  231. package/dist/map.mjs +12 -101
  232. package/dist/not.es.js +75 -14
  233. package/dist/not.es.min.js +3 -3
  234. package/dist/not.js +75 -14
  235. package/dist/not.min.js +3 -3
  236. package/dist/not.mjs +75 -14
  237. package/dist/omit.es.js +7 -2
  238. package/dist/omit.es.min.js +3 -3
  239. package/dist/omit.js +7 -2
  240. package/dist/omit.min.js +3 -3
  241. package/dist/omit.mjs +7 -2
  242. package/dist/or.es.js +99 -31
  243. package/dist/or.es.min.js +3 -3
  244. package/dist/or.js +99 -31
  245. package/dist/or.min.js +3 -3
  246. package/dist/or.mjs +99 -31
  247. package/dist/pick.es.js +8 -3
  248. package/dist/pick.es.min.js +3 -3
  249. package/dist/pick.js +8 -3
  250. package/dist/pick.min.js +3 -3
  251. package/dist/pick.mjs +8 -3
  252. package/dist/pipe.es.js +42 -46
  253. package/dist/pipe.es.min.js +3 -3
  254. package/dist/pipe.js +42 -46
  255. package/dist/pipe.min.js +3 -3
  256. package/dist/pipe.mjs +42 -46
  257. package/dist/reduce.es.js +52 -94
  258. package/dist/reduce.es.min.js +3 -3
  259. package/dist/reduce.js +52 -94
  260. package/dist/reduce.min.js +3 -3
  261. package/dist/reduce.mjs +52 -94
  262. package/dist/rubico.es.js +762 -883
  263. package/dist/rubico.es.min.js +3 -3
  264. package/dist/rubico.global.js +2794 -0
  265. package/dist/rubico.global.min.js +8 -0
  266. package/dist/rubico.js +739 -869
  267. package/dist/rubico.min.js +3 -3
  268. package/dist/rubico.mjs +762 -883
  269. package/dist/set.es.js +18 -3
  270. package/dist/set.es.min.js +3 -3
  271. package/dist/set.js +18 -3
  272. package/dist/set.min.js +3 -3
  273. package/dist/set.mjs +18 -3
  274. package/dist/{any.js → some.es.js} +64 -54
  275. package/dist/some.es.min.js +7 -0
  276. package/dist/{any.mjs → some.js} +72 -48
  277. package/dist/some.min.js +8 -0
  278. package/dist/{any.es.js → some.mjs} +65 -48
  279. package/dist/switchCase.es.js +55 -5
  280. package/dist/switchCase.es.min.js +3 -3
  281. package/dist/switchCase.js +55 -5
  282. package/dist/switchCase.min.js +3 -3
  283. package/dist/switchCase.mjs +55 -5
  284. package/dist/tap.es.js +2 -9
  285. package/dist/tap.es.min.js +3 -3
  286. package/dist/tap.js +2 -9
  287. package/dist/tap.min.js +3 -3
  288. package/dist/tap.mjs +2 -9
  289. package/dist/thunkify.es.js +45 -2
  290. package/dist/thunkify.es.min.js +3 -3
  291. package/dist/thunkify.js +45 -2
  292. package/dist/thunkify.min.js +3 -3
  293. package/dist/thunkify.mjs +45 -2
  294. package/dist/transform.es.js +35 -71
  295. package/dist/transform.es.min.js +3 -3
  296. package/dist/transform.js +35 -71
  297. package/dist/transform.min.js +3 -3
  298. package/dist/transform.mjs +35 -71
  299. package/dist/tryCatch.es.js +33 -17
  300. package/dist/tryCatch.es.min.js +3 -3
  301. package/dist/tryCatch.js +33 -17
  302. package/dist/tryCatch.min.js +3 -3
  303. package/dist/tryCatch.mjs +33 -17
  304. package/dist/x/append.es.js +2 -2
  305. package/dist/x/append.es.min.js +2 -2
  306. package/dist/x/append.js +2 -2
  307. package/dist/x/append.min.js +2 -2
  308. package/dist/x/append.mjs +2 -2
  309. package/dist/x/callProp.es.js +2 -2
  310. package/dist/x/callProp.es.min.js +2 -2
  311. package/dist/x/callProp.js +2 -2
  312. package/dist/x/callProp.min.js +2 -2
  313. package/dist/x/callProp.mjs +2 -2
  314. package/dist/x/defaultsDeep.es.js +2 -2
  315. package/dist/x/defaultsDeep.es.min.js +2 -2
  316. package/dist/x/defaultsDeep.js +2 -2
  317. package/dist/x/defaultsDeep.min.js +2 -2
  318. package/dist/x/defaultsDeep.mjs +2 -2
  319. package/dist/x/differenceWith.es.js +7 -7
  320. package/dist/x/differenceWith.es.min.js +3 -3
  321. package/dist/x/differenceWith.js +7 -7
  322. package/dist/x/differenceWith.min.js +2 -2
  323. package/dist/x/differenceWith.mjs +7 -7
  324. package/dist/x/filterOut.es.js +60 -117
  325. package/dist/x/filterOut.es.min.js +3 -3
  326. package/dist/x/filterOut.js +60 -117
  327. package/dist/x/filterOut.min.js +3 -3
  328. package/dist/x/filterOut.mjs +60 -117
  329. package/dist/x/find.es.js +2 -2
  330. package/dist/x/find.es.min.js +2 -2
  331. package/dist/x/find.js +2 -2
  332. package/dist/x/find.min.js +2 -2
  333. package/dist/x/find.mjs +2 -2
  334. package/dist/x/findIndex.es.js +2 -2
  335. package/dist/x/findIndex.es.min.js +2 -2
  336. package/dist/x/findIndex.js +2 -2
  337. package/dist/x/findIndex.min.js +2 -2
  338. package/dist/x/findIndex.mjs +2 -2
  339. package/dist/x/first.es.js +2 -2
  340. package/dist/x/first.es.min.js +2 -2
  341. package/dist/x/first.js +2 -2
  342. package/dist/x/first.min.js +2 -2
  343. package/dist/x/first.mjs +2 -2
  344. package/dist/x/flatten.es.js +20 -207
  345. package/dist/x/flatten.es.min.js +3 -3
  346. package/dist/x/flatten.js +20 -207
  347. package/dist/x/flatten.min.js +3 -3
  348. package/dist/x/flatten.mjs +20 -207
  349. package/dist/x/groupBy.es.js +52 -94
  350. package/dist/x/groupBy.es.min.js +3 -3
  351. package/dist/x/groupBy.js +52 -94
  352. package/dist/x/groupBy.min.js +3 -3
  353. package/dist/x/groupBy.mjs +52 -94
  354. package/dist/x/has.es.js +2 -2
  355. package/dist/x/has.es.min.js +2 -2
  356. package/dist/x/has.js +2 -2
  357. package/dist/x/has.min.js +2 -2
  358. package/dist/x/has.mjs +2 -2
  359. package/dist/x/identity.es.js +2 -2
  360. package/dist/x/identity.es.min.js +2 -2
  361. package/dist/x/identity.js +2 -2
  362. package/dist/x/identity.min.js +2 -2
  363. package/dist/x/identity.mjs +2 -2
  364. package/dist/x/includes.es.js +2 -2
  365. package/dist/x/includes.es.min.js +2 -2
  366. package/dist/x/includes.js +2 -2
  367. package/dist/x/includes.min.js +2 -2
  368. package/dist/x/includes.mjs +2 -2
  369. package/dist/x/isDeepEqual.es.js +2 -2
  370. package/dist/x/isDeepEqual.es.min.js +2 -2
  371. package/dist/x/isDeepEqual.js +2 -2
  372. package/dist/x/isDeepEqual.min.js +2 -2
  373. package/dist/x/isDeepEqual.mjs +2 -2
  374. package/dist/x/isEmpty.es.js +2 -2
  375. package/dist/x/isEmpty.es.min.js +2 -2
  376. package/dist/x/isEmpty.js +2 -2
  377. package/dist/x/isEmpty.min.js +2 -2
  378. package/dist/x/isEmpty.mjs +2 -2
  379. package/dist/x/isEqual.es.js +2 -2
  380. package/dist/x/isEqual.es.min.js +2 -2
  381. package/dist/x/isEqual.js +2 -2
  382. package/dist/x/isEqual.min.js +2 -2
  383. package/dist/x/isEqual.mjs +2 -2
  384. package/dist/x/isFunction.es.js +2 -2
  385. package/dist/x/isFunction.es.min.js +2 -2
  386. package/dist/x/isFunction.js +2 -2
  387. package/dist/x/isFunction.min.js +2 -2
  388. package/dist/x/isFunction.mjs +2 -2
  389. package/dist/x/isIn.es.js +2 -2
  390. package/dist/x/isIn.es.min.js +2 -2
  391. package/dist/x/isIn.js +2 -2
  392. package/dist/x/isIn.min.js +2 -2
  393. package/dist/x/isIn.mjs +2 -2
  394. package/dist/x/isObject.es.js +2 -2
  395. package/dist/x/isObject.es.min.js +2 -2
  396. package/dist/x/isObject.js +2 -2
  397. package/dist/x/isObject.min.js +2 -2
  398. package/dist/x/isObject.mjs +2 -2
  399. package/dist/x/isString.es.js +2 -2
  400. package/dist/x/isString.es.min.js +2 -2
  401. package/dist/x/isString.js +2 -2
  402. package/dist/x/isString.min.js +2 -2
  403. package/dist/x/isString.mjs +2 -2
  404. package/dist/x/keys.es.js +2 -2
  405. package/dist/x/keys.es.min.js +2 -2
  406. package/dist/x/keys.js +2 -2
  407. package/dist/x/keys.min.js +2 -2
  408. package/dist/x/keys.mjs +2 -2
  409. package/dist/x/last.es.js +2 -2
  410. package/dist/x/last.es.min.js +2 -2
  411. package/dist/x/last.js +2 -2
  412. package/dist/x/last.min.js +2 -2
  413. package/dist/x/last.mjs +2 -2
  414. package/dist/x/maxBy.es.js +59 -6
  415. package/dist/x/maxBy.es.min.js +3 -3
  416. package/dist/x/maxBy.js +59 -6
  417. package/dist/x/maxBy.min.js +3 -3
  418. package/dist/x/maxBy.mjs +59 -6
  419. package/dist/x/noop.es.js +2 -2
  420. package/dist/x/noop.es.min.js +2 -2
  421. package/dist/x/noop.js +2 -2
  422. package/dist/x/noop.min.js +2 -2
  423. package/dist/x/noop.mjs +2 -2
  424. package/dist/x/pluck.es.js +32 -103
  425. package/dist/x/pluck.es.min.js +3 -3
  426. package/dist/x/pluck.js +32 -103
  427. package/dist/x/pluck.min.js +3 -3
  428. package/dist/x/pluck.mjs +32 -103
  429. package/dist/x/prepend.es.js +2 -2
  430. package/dist/x/prepend.es.min.js +2 -2
  431. package/dist/x/prepend.js +2 -2
  432. package/dist/x/prepend.min.js +2 -2
  433. package/dist/x/prepend.mjs +2 -2
  434. package/dist/x/size.es.js +2 -2
  435. package/dist/x/size.es.min.js +2 -2
  436. package/dist/x/size.js +2 -2
  437. package/dist/x/size.min.js +2 -2
  438. package/dist/x/size.mjs +2 -2
  439. package/dist/x/trace.es.js +2 -9
  440. package/dist/x/trace.es.min.js +3 -3
  441. package/dist/x/trace.js +2 -9
  442. package/dist/x/trace.min.js +3 -3
  443. package/dist/x/trace.mjs +2 -9
  444. package/dist/x/unionWith.es.js +2 -2
  445. package/dist/x/unionWith.es.min.js +2 -2
  446. package/dist/x/unionWith.js +2 -2
  447. package/dist/x/unionWith.min.js +2 -2
  448. package/dist/x/unionWith.mjs +2 -2
  449. package/dist/x/uniq.es.js +2 -2
  450. package/dist/x/uniq.es.min.js +2 -2
  451. package/dist/x/uniq.js +2 -2
  452. package/dist/x/uniq.min.js +2 -2
  453. package/dist/x/uniq.mjs +2 -2
  454. package/dist/x/unless.es.js +2 -2
  455. package/dist/x/unless.es.min.js +2 -2
  456. package/dist/x/unless.js +2 -2
  457. package/dist/x/unless.min.js +2 -2
  458. package/dist/x/unless.mjs +2 -2
  459. package/dist/x/values.es.js +2 -2
  460. package/dist/x/values.es.min.js +2 -2
  461. package/dist/x/values.js +2 -2
  462. package/dist/x/values.min.js +2 -2
  463. package/dist/x/values.mjs +2 -2
  464. package/dist/x/when.es.js +2 -2
  465. package/dist/x/when.es.min.js +2 -2
  466. package/dist/x/when.js +2 -2
  467. package/dist/x/when.min.js +2 -2
  468. package/dist/x/when.mjs +2 -2
  469. package/dist-test.js +31 -2042
  470. package/eq.js +21 -63
  471. package/es.js +739 -869
  472. package/every.js +94 -0
  473. package/filter.js +23 -91
  474. package/flatMap.js +75 -70
  475. package/forEach.js +82 -0
  476. package/get.js +23 -6
  477. package/global.js +6 -4
  478. package/gt.js +15 -58
  479. package/gte.js +14 -57
  480. package/index.js +739 -869
  481. package/lt.js +17 -60
  482. package/lte.js +14 -57
  483. package/map.js +9 -94
  484. package/memory-usage/reduce.js +2 -2
  485. package/not.js +27 -45
  486. package/omit.js +4 -0
  487. package/or.js +50 -33
  488. package/package.json +7 -7
  489. package/pick.js +5 -1
  490. package/pipe.js +13 -50
  491. package/reduce.js +42 -51
  492. package/rubico.js +22 -11
  493. package/set.js +43 -10
  494. package/some.js +105 -0
  495. package/switchCase.js +13 -3
  496. package/tap.js +0 -24
  497. package/test.js +847 -1096
  498. package/thunkify.js +9 -0
  499. package/tmp.js +1 -0
  500. package/transform.js +31 -16
  501. package/tryCatch.js +19 -15
  502. package/x/differenceWith.js +3 -3
  503. package/x/filterOut.test.js +6 -6
  504. package/x/flatten.js +1 -1
  505. package/x/flatten.test.js +0 -8
  506. package/x/index.js +0 -2
  507. package/x/pluck.js +18 -27
  508. package/x/pluck.test.js +3 -7
  509. package/x/timeInLoop.js +16 -25
  510. package/x/timeInLoop.test.js +8 -4
  511. package/any.js +0 -82
  512. package/dist/__.min.mjs +0 -7
  513. package/dist/all.min.mjs +0 -7
  514. package/dist/always.min.mjs +0 -7
  515. package/dist/and.min.mjs +0 -7
  516. package/dist/any.es.min.js +0 -7
  517. package/dist/any.min.js +0 -8
  518. package/dist/any.min.mjs +0 -7
  519. package/dist/assign.min.mjs +0 -7
  520. package/dist/curry.min.mjs +0 -7
  521. package/dist/eq.min.mjs +0 -7
  522. package/dist/filter.min.mjs +0 -7
  523. package/dist/flatMap.min.mjs +0 -7
  524. package/dist/fork.es.js +0 -159
  525. package/dist/fork.es.min.js +0 -7
  526. package/dist/fork.js +0 -166
  527. package/dist/fork.min.js +0 -8
  528. package/dist/fork.min.mjs +0 -7
  529. package/dist/fork.mjs +0 -159
  530. package/dist/get.min.mjs +0 -7
  531. package/dist/gt.min.mjs +0 -7
  532. package/dist/gte.min.mjs +0 -7
  533. package/dist/lt.min.mjs +0 -7
  534. package/dist/lte.min.mjs +0 -7
  535. package/dist/map.min.mjs +0 -7
  536. package/dist/not.min.mjs +0 -7
  537. package/dist/omit.min.mjs +0 -7
  538. package/dist/or.min.mjs +0 -7
  539. package/dist/pick.min.mjs +0 -7
  540. package/dist/pipe.min.mjs +0 -7
  541. package/dist/reduce.min.mjs +0 -7
  542. package/dist/rubico.min.mjs +0 -7
  543. package/dist/set.min.mjs +0 -7
  544. package/dist/switchCase.min.mjs +0 -7
  545. package/dist/tap.min.mjs +0 -7
  546. package/dist/thunkify.min.mjs +0 -7
  547. package/dist/transform.min.mjs +0 -7
  548. package/dist/tryCatch.min.mjs +0 -7
  549. package/dist/x/append.min.mjs +0 -7
  550. package/dist/x/callProp.min.mjs +0 -7
  551. package/dist/x/defaultsDeep.min.mjs +0 -7
  552. package/dist/x/differenceWith.min.mjs +0 -7
  553. package/dist/x/filterOut.min.mjs +0 -7
  554. package/dist/x/find.min.mjs +0 -7
  555. package/dist/x/findIndex.min.mjs +0 -7
  556. package/dist/x/first.min.mjs +0 -7
  557. package/dist/x/flatten.min.mjs +0 -7
  558. package/dist/x/forEach.es.min.js +0 -7
  559. package/dist/x/forEach.min.js +0 -8
  560. package/dist/x/forEach.min.mjs +0 -7
  561. package/dist/x/groupBy.min.mjs +0 -7
  562. package/dist/x/has.min.mjs +0 -7
  563. package/dist/x/identity.min.mjs +0 -7
  564. package/dist/x/includes.min.mjs +0 -7
  565. package/dist/x/isDeepEqual.min.mjs +0 -7
  566. package/dist/x/isEmpty.min.mjs +0 -7
  567. package/dist/x/isEqual.min.mjs +0 -7
  568. package/dist/x/isFunction.min.mjs +0 -7
  569. package/dist/x/isIn.min.mjs +0 -7
  570. package/dist/x/isObject.min.mjs +0 -7
  571. package/dist/x/isString.min.mjs +0 -7
  572. package/dist/x/keys.min.mjs +0 -7
  573. package/dist/x/last.min.mjs +0 -7
  574. package/dist/x/maxBy.min.mjs +0 -7
  575. package/dist/x/noop.min.mjs +0 -7
  576. package/dist/x/pluck.min.mjs +0 -7
  577. package/dist/x/prepend.min.mjs +0 -7
  578. package/dist/x/size.min.mjs +0 -7
  579. package/dist/x/trace.min.mjs +0 -7
  580. package/dist/x/unionWith.min.mjs +0 -7
  581. package/dist/x/uniq.min.mjs +0 -7
  582. package/dist/x/unless.min.mjs +0 -7
  583. package/dist/x/values.min.mjs +0 -7
  584. package/dist/x/when.min.mjs +0 -7
  585. package/distributor.js +0 -495
  586. package/fork.js +0 -101
  587. package/x/forEach.js +0 -93
  588. package/x/forEach.test.js +0 -218
  589. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  590. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  591. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  592. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  593. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * rubico v2.0.1
3
+ * https://github.com/a-synchronous/rubico
4
+ * (c) 2019-2023 Richard Tong
5
+ * rubico may be freely distributed under the MIT license.
6
+ */
7
+ const __ = Symbol.for('placeholder')
8
+
9
+ // argument resolver for curry2
10
+ const curry2ResolveArg0 = (
11
+ baseFunc, arg1,
12
+ ) => function arg0Resolver(arg0) {
13
+ return baseFunc(arg0, arg1)
14
+ }
15
+
16
+ // argument resolver for curry2
17
+ const curry2ResolveArg1 = (
18
+ baseFunc, arg0,
19
+ ) => function arg1Resolver(arg1) {
20
+ return baseFunc(arg0, arg1)
21
+ }
22
+
23
+ const curry2 = function (baseFunc, arg0, arg1) {
24
+ return arg0 == __
25
+ ? curry2ResolveArg0(baseFunc, arg1)
26
+ : curry2ResolveArg1(baseFunc, arg0)
27
+ }
28
+
29
+ const promiseAll = Promise.all.bind(Promise)
30
+
31
+ const funcApply = (func, args) => func(...args)
32
+
33
+ const isPromise = value => value != null && typeof value.then == 'function'
34
+
35
+ const areAnyValuesPromises = function (values) {
36
+ const length = values.length
37
+ let index = -1
38
+ while (++index < length) {
39
+ const value = values[index]
40
+ if (isPromise(value)) {
41
+ return true
42
+ }
43
+ }
44
+ return false
45
+ }
46
+
47
+ const funcConcat = (
48
+ funcA, funcB,
49
+ ) => function pipedFunction(...args) {
50
+ const intermediate = funcA(...args)
51
+ return isPromise(intermediate)
52
+ ? intermediate.then(funcB)
53
+ : funcB(intermediate)
54
+ }
55
+
56
+ const compose = function (...args) {
57
+ const funcs = args.pop()
58
+ const composition = funcs.reduceRight(funcConcat)
59
+
60
+ if (args.length == 0) {
61
+ return composition
62
+ }
63
+
64
+ if (areAnyValuesPromises(args)) {
65
+ return promiseAll(args).then(curry2(funcApply, composition, __))
66
+ }
67
+
68
+ return composition(...args)
69
+ }
70
+
71
+ export default compose
@@ -0,0 +1,7 @@
1
+ /**
2
+ * rubico v2.0.1
3
+ * https://github.com/a-synchronous/rubico
4
+ * (c) 2019-2023 Richard Tong
5
+ * rubico may be freely distributed under the MIT license.
6
+ */
7
+ const __=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},promiseAll=Promise.all.bind(Promise),funcApply=(r,e)=>r(...e),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},funcConcat=(r,e)=>function(...n){const o=r(...n);return isPromise(o)?o.then(e):e(o)},compose=function(...r){const e=r.pop().reduceRight(funcConcat);return 0==r.length?e:areAnyValuesPromises(r)?promiseAll(r).then((n=funcApply,t=__,(o=e)==__?curry2ResolveArg0(n,t):curry2ResolveArg1(n,o))):e(...r);var n,o,t};export default compose;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * rubico v2.0.1
3
+ * https://github.com/a-synchronous/rubico
4
+ * (c) 2019-2023 Richard Tong
5
+ * rubico may be freely distributed under the MIT license.
6
+ */
7
+
8
+ (function (root, compose) {
9
+ if (typeof module == 'object') (module.exports = compose) // CommonJS
10
+ else if (typeof define == 'function') define(() => compose) // AMD
11
+ else (root.compose = compose) // Browser
12
+ }(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
13
+ const __ = Symbol.for('placeholder')
14
+
15
+ // argument resolver for curry2
16
+ const curry2ResolveArg0 = (
17
+ baseFunc, arg1,
18
+ ) => function arg0Resolver(arg0) {
19
+ return baseFunc(arg0, arg1)
20
+ }
21
+
22
+ // argument resolver for curry2
23
+ const curry2ResolveArg1 = (
24
+ baseFunc, arg0,
25
+ ) => function arg1Resolver(arg1) {
26
+ return baseFunc(arg0, arg1)
27
+ }
28
+
29
+ const curry2 = function (baseFunc, arg0, arg1) {
30
+ return arg0 == __
31
+ ? curry2ResolveArg0(baseFunc, arg1)
32
+ : curry2ResolveArg1(baseFunc, arg0)
33
+ }
34
+
35
+ const promiseAll = Promise.all.bind(Promise)
36
+
37
+ const funcApply = (func, args) => func(...args)
38
+
39
+ const isPromise = value => value != null && typeof value.then == 'function'
40
+
41
+ const areAnyValuesPromises = function (values) {
42
+ const length = values.length
43
+ let index = -1
44
+ while (++index < length) {
45
+ const value = values[index]
46
+ if (isPromise(value)) {
47
+ return true
48
+ }
49
+ }
50
+ return false
51
+ }
52
+
53
+ const funcConcat = (
54
+ funcA, funcB,
55
+ ) => function pipedFunction(...args) {
56
+ const intermediate = funcA(...args)
57
+ return isPromise(intermediate)
58
+ ? intermediate.then(funcB)
59
+ : funcB(intermediate)
60
+ }
61
+
62
+ const compose = function (...args) {
63
+ const funcs = args.pop()
64
+ const composition = funcs.reduceRight(funcConcat)
65
+
66
+ if (args.length == 0) {
67
+ return composition
68
+ }
69
+
70
+ if (areAnyValuesPromises(args)) {
71
+ return promiseAll(args).then(curry2(funcApply, composition, __))
72
+ }
73
+
74
+ return composition(...args)
75
+ }
76
+
77
+ return compose
78
+ }())))
@@ -0,0 +1,8 @@
1
+ /**
2
+ * rubico v2.0.1
3
+ * https://github.com/a-synchronous/rubico
4
+ * (c) 2019-2023 Richard Tong
5
+ * rubico may be freely distributed under the MIT license.
6
+ */
7
+
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.compose=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=Promise.all.bind(Promise),e=(n,t)=>n(...t),o=n=>null!=n&&"function"==typeof n.then,r=(n,t)=>function(...e){const r=n(...e);return o(r)?r.then(t):t(r)};return function(...u){const c=u.pop().reduceRight(r);return 0==u.length?c:function(n){const t=n.length;let e=-1;for(;++e<t;){const t=n[e];if(o(t))return!0}return!1}(u)?t(u).then((i=e,l=n,(f=c)==n?((n,t)=>function(e){return n(e,t)})(i,l):((n,t)=>function(e){return n(t,e)})(i,f))):c(...u);var i,f,l}}());
@@ -0,0 +1,71 @@
1
+ /**
2
+ * rubico v2.0.1
3
+ * https://github.com/a-synchronous/rubico
4
+ * (c) 2019-2023 Richard Tong
5
+ * rubico may be freely distributed under the MIT license.
6
+ */
7
+ const __ = Symbol.for('placeholder')
8
+
9
+ // argument resolver for curry2
10
+ const curry2ResolveArg0 = (
11
+ baseFunc, arg1,
12
+ ) => function arg0Resolver(arg0) {
13
+ return baseFunc(arg0, arg1)
14
+ }
15
+
16
+ // argument resolver for curry2
17
+ const curry2ResolveArg1 = (
18
+ baseFunc, arg0,
19
+ ) => function arg1Resolver(arg1) {
20
+ return baseFunc(arg0, arg1)
21
+ }
22
+
23
+ const curry2 = function (baseFunc, arg0, arg1) {
24
+ return arg0 == __
25
+ ? curry2ResolveArg0(baseFunc, arg1)
26
+ : curry2ResolveArg1(baseFunc, arg0)
27
+ }
28
+
29
+ const promiseAll = Promise.all.bind(Promise)
30
+
31
+ const funcApply = (func, args) => func(...args)
32
+
33
+ const isPromise = value => value != null && typeof value.then == 'function'
34
+
35
+ const areAnyValuesPromises = function (values) {
36
+ const length = values.length
37
+ let index = -1
38
+ while (++index < length) {
39
+ const value = values[index]
40
+ if (isPromise(value)) {
41
+ return true
42
+ }
43
+ }
44
+ return false
45
+ }
46
+
47
+ const funcConcat = (
48
+ funcA, funcB,
49
+ ) => function pipedFunction(...args) {
50
+ const intermediate = funcA(...args)
51
+ return isPromise(intermediate)
52
+ ? intermediate.then(funcB)
53
+ : funcB(intermediate)
54
+ }
55
+
56
+ const compose = function (...args) {
57
+ const funcs = args.pop()
58
+ const composition = funcs.reduceRight(funcConcat)
59
+
60
+ if (args.length == 0) {
61
+ return composition
62
+ }
63
+
64
+ if (areAnyValuesPromises(args)) {
65
+ return promiseAll(args).then(curry2(funcApply, composition, __))
66
+ }
67
+
68
+ return composition(...args)
69
+ }
70
+
71
+ export default compose
package/dist/curry.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __ = Symbol.for('placeholder')
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __=Symbol.for("placeholder"),_curryArity=(r,t,u)=>function(...n){const y=u.length,c=n.length,e=[];let i=-1,o=-1,f=0;for(;++i<y;){const y=u[i];if(y==__&&(o+=1)<c){const r=n[o];r==__&&(f+=1),e.push(r)}else e.push(y);if(e.length==r)return 0==f?t(...e):curryArity(r,t,e)}for(;++o<c;){const u=n[o];if(u==__&&(f+=1),e.push(u),e.length==r)return 0==f?t(...e):curryArity(r,t,e)}return curryArity(r,t,e)},curryArity=function(r,t,u){const n=u.length;if(n<r)return _curryArity(r,t,u);let y=-1;for(;++y<n;){if(u[y]==__)return _curryArity(r,t,u)}return t(...u)},curry=(r,...t)=>curryArity(r.length,r,t);curry.arity=function(r,t,...u){return curryArity(r,t,u)};export default curry;
package/dist/curry.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/curry.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/curry.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __ = Symbol.for('placeholder')
package/dist/eq.es.js CHANGED
@@ -1,86 +1,209 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- const spread2 = func => function spreading2([arg0, arg1]) {
9
- return func(arg0, arg1)
10
- }
11
-
12
8
  const isPromise = value => value != null && typeof value.then == 'function'
13
9
 
14
- const promiseAll = Promise.all.bind(Promise)
15
-
16
- const sameValueZero = function (left, right) {
17
- return left === right || (left !== left && right !== right)
10
+ const areAnyValuesPromises = function (values) {
11
+ const length = values.length
12
+ let index = -1
13
+ while (++index < length) {
14
+ const value = values[index]
15
+ if (isPromise(value)) {
16
+ return true
17
+ }
18
+ }
19
+ return false
18
20
  }
19
21
 
20
22
  const __ = Symbol.for('placeholder')
21
23
 
22
- // argument resolver for curry2
23
- const curry2ResolveArg0 = (
24
- baseFunc, arg1,
24
+ // argument resolver for curry4
25
+ const curry4ResolveArg0 = (
26
+ baseFunc, arg1, arg2, arg3,
25
27
  ) => function arg0Resolver(arg0) {
26
- return baseFunc(arg0, arg1)
28
+ return baseFunc(arg0, arg1, arg2, arg3)
27
29
  }
28
30
 
29
- // argument resolver for curry2
30
- const curry2ResolveArg1 = (
31
- baseFunc, arg0,
31
+ // argument resolver for curry4
32
+ const curry4ResolveArg1 = (
33
+ baseFunc, arg0, arg2, arg3,
32
34
  ) => function arg1Resolver(arg1) {
33
- return baseFunc(arg0, arg1)
35
+ return baseFunc(arg0, arg1, arg2, arg3)
36
+ }
37
+
38
+ // argument resolver for curry4
39
+ const curry4ResolveArg2 = (
40
+ baseFunc, arg0, arg1, arg3,
41
+ ) => function arg2Resolver(arg2) {
42
+ return baseFunc(arg0, arg1, arg2, arg3)
43
+ }
44
+
45
+ // argument resolver for curry4
46
+ const curry4ResolveArg3 = (
47
+ baseFunc, arg0, arg1, arg2,
48
+ ) => function arg3Resolver(arg3) {
49
+ return baseFunc(arg0, arg1, arg2, arg3)
50
+ }
51
+
52
+ const curry4 = function (baseFunc, arg0, arg1, arg2, arg3) {
53
+ if (arg0 == __) {
54
+ return curry4ResolveArg0(baseFunc, arg1, arg2, arg3)
55
+ }
56
+ if (arg1 == __) {
57
+ return curry4ResolveArg1(baseFunc, arg0, arg2, arg3)
58
+ }
59
+ if (arg2 == __) {
60
+ return curry4ResolveArg2(baseFunc, arg0, arg1, arg3)
61
+ }
62
+ return curry4ResolveArg3(baseFunc, arg0, arg1, arg2)
63
+ }
64
+
65
+ // argument resolver for curryArgs4
66
+ const curryArgs4ResolveArgs0 = (
67
+ baseFunc, arg1, arg2, arg3,
68
+ ) => function args0Resolver(...args) {
69
+ return baseFunc(args, arg1, arg2, arg3)
70
+ }
71
+
72
+ // argument resolver for curryArgs4
73
+ const curryArgs4ResolveArgs1 = (
74
+ baseFunc, arg0, arg2, arg3,
75
+ ) => function args1Resolver(...args) {
76
+ return baseFunc(arg0, args, arg2, arg3)
77
+ }
78
+
79
+ // argument resolver for curryArgs4
80
+ const curryArgs4ResolveArgs2 = (
81
+ baseFunc, arg0, arg1, arg3,
82
+ ) => function args2Resolver(...args) {
83
+ return baseFunc(arg0, arg1, args, arg3)
84
+ }
85
+
86
+ // argument resolver for curryArgs4
87
+ const curryArgs4ResolveArgs3 = (
88
+ baseFunc, arg0, arg1, arg2,
89
+ ) => function args3Resolver(...args) {
90
+ return baseFunc(arg0, arg1, arg2, args)
34
91
  }
35
92
 
36
- const curry2 = function (baseFunc, arg0, arg1) {
37
- return arg0 == __
38
- ? curry2ResolveArg0(baseFunc, arg1)
39
- : curry2ResolveArg1(baseFunc, arg0)
93
+ const curryArgs4 = function (baseFunc, arg0, arg1, arg2, arg3) {
94
+ if (arg0 == __) {
95
+ return curryArgs4ResolveArgs0(baseFunc, arg1, arg2, arg3)
96
+ }
97
+ if (arg1 == __) {
98
+ return curryArgs4ResolveArgs1(baseFunc, arg0, arg2, arg3)
99
+ }
100
+ if (arg2 == __) {
101
+ return curryArgs4ResolveArgs2(baseFunc, arg0, arg1, arg3)
102
+ }
103
+ return curryArgs4ResolveArgs3(baseFunc, arg0, arg1, arg2)
40
104
  }
41
105
 
42
- const always = value => function getter() { return value }
106
+ const spread2 = func => function spreading2([arg0, arg1]) {
107
+ return func(arg0, arg1)
108
+ }
43
109
 
44
- const eq = function (left, right) {
110
+ const promiseAll = Promise.all.bind(Promise)
111
+
112
+ // leftResolverRightResolverCompare(
113
+ // args Array, comparator function, left function, right function,
114
+ // ) -> Promise|boolean
115
+ const leftResolverRightResolverCompare = function (
116
+ args, comparator, left, right,
117
+ ) {
118
+ const leftResult = left(...args),
119
+ rightResult = right(...args)
120
+ if (isPromise(leftResult) || isPromise(rightResult)) {
121
+ return promiseAll([leftResult, rightResult]).then(spread2(comparator))
122
+ }
123
+ return comparator(leftResult, rightResult)
124
+ }
125
+
126
+ // leftResolverRightValueCompare(
127
+ // args Array, comparator function, left function, right any
128
+ // ) -> Promise|boolean
129
+ const leftResolverRightValueCompare = function (args, comparator, left, right) {
130
+ const leftResult = left(...args)
131
+ if (isPromise(leftResult) || isPromise(right)) {
132
+ return promiseAll([leftResult, right]).then(spread2(comparator))
133
+ }
134
+ return comparator(leftResult, right)
135
+ }
136
+
137
+ // leftValueRightResolverCompare(
138
+ // args Array, comparator function, left any, right any,
139
+ // ) -> Promise|boolean
140
+ const leftValueRightResolverCompare = function (args, comparator, left, right) {
141
+ const rightResult = right(...args)
142
+ if (isPromise(left) || isPromise(rightResult)) {
143
+ return promiseAll([left, rightResult]).then(spread2(comparator))
144
+ }
145
+ return comparator(left, rightResult)
146
+ }
147
+
148
+ // ComparisonOperator(comparator function) -> operator function
149
+ const ComparisonOperator = comparator => function operator(...args) {
150
+ const right = args.pop()
151
+ const left = args.pop()
45
152
  const isLeftResolver = typeof left == 'function',
46
153
  isRightResolver = typeof right == 'function'
47
154
 
48
155
  if (isLeftResolver && isRightResolver) {
49
- return function equalBy(value) {
50
- const leftResolve = left(value),
51
- rightResolve = right(value)
52
- const isLeftPromise = isPromise(leftResolve),
53
- isRightPromise = isPromise(rightResolve)
54
- if (isLeftPromise && isRightPromise) {
55
- return promiseAll(
56
- [leftResolve, rightResolve]).then(spread2(sameValueZero))
57
- } else if (isLeftPromise) {
58
- return leftResolve.then(curry2(sameValueZero, __, rightResolve))
59
- } else if (isRightPromise) {
60
- return rightResolve.then(curry2(sameValueZero, leftResolve, __))
61
- }
62
- return sameValueZero(leftResolve, rightResolve)
156
+ if (args.length == 0) {
157
+ return curryArgs4(
158
+ leftResolverRightResolverCompare, __, comparator, left, right,
159
+ )
160
+ }
161
+ if (areAnyValuesPromises(args)) {
162
+ return promiseAll(args).then(curry4(
163
+ leftResolverRightResolverCompare, __, comparator, left, right,
164
+ ))
63
165
  }
166
+ return leftResolverRightResolverCompare(args, comparator, left, right)
64
167
  }
65
168
 
66
169
  if (isLeftResolver) {
67
- return function equalBy(value) {
68
- const leftResolve = left(value)
69
- return isPromise(leftResolve)
70
- ? leftResolve.then(curry2(sameValueZero, __, right))
71
- : sameValueZero(leftResolve, right)
170
+ if (args.length == 0) {
171
+ return curryArgs4(
172
+ leftResolverRightValueCompare, __, comparator, left, right,
173
+ )
174
+ }
175
+ if (areAnyValuesPromises(args)) {
176
+ return promiseAll(args).then(curry4(
177
+ leftResolverRightValueCompare, __, comparator, left, right,
178
+ ))
72
179
  }
180
+ return leftResolverRightValueCompare(args, comparator, left, right)
73
181
  }
182
+
74
183
  if (isRightResolver) {
75
- return function equalBy(value) {
76
- const rightResolve = right(value)
77
- return isPromise(rightResolve)
78
- ? rightResolve.then(curry2(sameValueZero, left, __))
79
- : sameValueZero(left, rightResolve)
184
+ if (args.length == 0) {
185
+ return curryArgs4(
186
+ leftValueRightResolverCompare, __, comparator, left, right,
187
+ )
188
+ }
189
+ if (areAnyValuesPromises(args)) {
190
+ return promiseAll(args).then(curry4(
191
+ leftValueRightResolverCompare, __, comparator, left, right,
192
+ ))
80
193
  }
194
+ return leftValueRightResolverCompare(args, comparator, left, right)
195
+ }
196
+
197
+ if (isPromise(left) || isPromise(right)) {
198
+ return promiseAll([left, right]).then(spread2(comparator))
81
199
  }
200
+ return comparator(left, right)
201
+ }
82
202
 
83
- return sameValueZero(left, right)
203
+ const equals = function (left, right) {
204
+ return left == right
84
205
  }
85
206
 
207
+ const eq = ComparisonOperator(equals)
208
+
86
209
  export default eq
package/dist/eq.es.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.1
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const spread2=e=>function([r,n]){return e(r,n)},isPromise=e=>null!=e&&"function"==typeof e.then,promiseAll=Promise.all.bind(Promise),sameValueZero=function(e,r){return e===r||e!=e&&r!=r},__=Symbol.for("placeholder"),curry2ResolveArg0=(e,r)=>function(n){return e(n,r)},curry2ResolveArg1=(e,r)=>function(n){return e(r,n)},curry2=function(e,r,n){return r==__?curry2ResolveArg0(e,n):curry2ResolveArg1(e,r)},always=e=>function(){return e},eq=function(e,r){const n="function"==typeof e,o="function"==typeof r;return n&&o?function(n){const o=e(n),u=r(n),t=isPromise(o),s=isPromise(u);return t&&s?promiseAll([o,u]).then((c=sameValueZero,function([e,r]){return c(e,r)})):t?o.then(curry2(sameValueZero,__,u)):s?u.then(curry2(sameValueZero,o,__)):sameValueZero(o,u);var c}:n?function(n){const o=e(n);return isPromise(o)?o.then(curry2(sameValueZero,__,r)):sameValueZero(o,r)}:o?function(n){const o=r(n);return isPromise(o)?o.then(curry2(sameValueZero,e,__)):sameValueZero(e,o)}:sameValueZero(e,r)};export default eq;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const e=r.length;let o=-1;for(;++o<e;){const e=r[o];if(isPromise(e))return!0}return!1},__=Symbol.for("placeholder"),curry4ResolveArg0=(r,e,o,s)=>function(t){return r(t,e,o,s)},curry4ResolveArg1=(r,e,o,s)=>function(t){return r(e,t,o,s)},curry4ResolveArg2=(r,e,o,s)=>function(t){return r(e,o,t,s)},curry4ResolveArg3=(r,e,o,s)=>function(t){return r(e,o,s,t)},curry4=function(r,e,o,s,t){return e==__?curry4ResolveArg0(r,o,s,t):o==__?curry4ResolveArg1(r,e,s,t):s==__?curry4ResolveArg2(r,e,o,t):curry4ResolveArg3(r,e,o,s)},curryArgs4ResolveArgs0=(r,e,o,s)=>function(...t){return r(t,e,o,s)},curryArgs4ResolveArgs1=(r,e,o,s)=>function(...t){return r(e,t,o,s)},curryArgs4ResolveArgs2=(r,e,o,s)=>function(...t){return r(e,o,t,s)},curryArgs4ResolveArgs3=(r,e,o,s)=>function(...t){return r(e,o,s,t)},curryArgs4=function(r,e,o,s,t){return e==__?curryArgs4ResolveArgs0(r,o,s,t):o==__?curryArgs4ResolveArgs1(r,e,s,t):s==__?curryArgs4ResolveArgs2(r,e,o,t):curryArgs4ResolveArgs3(r,e,o,s)},spread2=r=>function([e,o]){return r(e,o)},promiseAll=Promise.all.bind(Promise),leftResolverRightResolverCompare=function(r,e,o,s){const t=o(...r),l=s(...r);return isPromise(t)||isPromise(l)?promiseAll([t,l]).then(spread2(e)):e(t,l)},leftResolverRightValueCompare=function(r,e,o,s){const t=o(...r);return isPromise(t)||isPromise(s)?promiseAll([t,s]).then(spread2(e)):e(t,s)},leftValueRightResolverCompare=function(r,e,o,s){const t=s(...r);return isPromise(o)||isPromise(t)?promiseAll([o,t]).then(spread2(e)):e(o,t)},ComparisonOperator=r=>function(...e){const o=e.pop(),s=e.pop(),t="function"==typeof s,l="function"==typeof o;return t&&l?0==e.length?curryArgs4(leftResolverRightResolverCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightResolverCompare,__,r,s,o)):leftResolverRightResolverCompare(e,r,s,o):t?0==e.length?curryArgs4(leftResolverRightValueCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftResolverRightValueCompare,__,r,s,o)):leftResolverRightValueCompare(e,r,s,o):l?0==e.length?curryArgs4(leftValueRightResolverCompare,__,r,s,o):areAnyValuesPromises(e)?promiseAll(e).then(curry4(leftValueRightResolverCompare,__,r,s,o)):leftValueRightResolverCompare(e,r,s,o):isPromise(s)||isPromise(o)?promiseAll([s,o]).then(spread2(r)):r(s,o)},equals=function(r,e){return r==e},eq=ComparisonOperator(equals);export default eq;