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