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/or.es.js CHANGED
@@ -1,14 +1,48 @@
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 promiseAll = Promise.all.bind(Promise)
9
+
8
10
  const isPromise = value => value != null && typeof value.then == 'function'
9
11
 
12
+ const areAnyValuesPromises = function (values) {
13
+ const length = values.length
14
+ let index = -1
15
+ while (++index < length) {
16
+ const value = values[index]
17
+ if (isPromise(value)) {
18
+ return true
19
+ }
20
+ }
21
+ return false
22
+ }
23
+
10
24
  const __ = Symbol.for('placeholder')
11
25
 
26
+ // argument resolver for curry2
27
+ const curry2ResolveArg0 = (
28
+ baseFunc, arg1,
29
+ ) => function arg0Resolver(arg0) {
30
+ return baseFunc(arg0, arg1)
31
+ }
32
+
33
+ // argument resolver for curry2
34
+ const curry2ResolveArg1 = (
35
+ baseFunc, arg0,
36
+ ) => function arg1Resolver(arg1) {
37
+ return baseFunc(arg0, arg1)
38
+ }
39
+
40
+ const curry2 = function (baseFunc, arg0, arg1) {
41
+ return arg0 == __
42
+ ? curry2ResolveArg0(baseFunc, arg1)
43
+ : curry2ResolveArg1(baseFunc, arg0)
44
+ }
45
+
12
46
  // argument resolver for curry3
13
47
  const curry3ResolveArg0 = (
14
48
  baseFunc, arg1, arg2,
@@ -40,6 +74,27 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
40
74
  return curry3ResolveArg2(baseFunc, arg0, arg1)
41
75
  }
42
76
 
77
+ // argument resolver for curryArgs2
78
+ const curryArgs2ResolveArgs0 = (
79
+ baseFunc, arg1, arg2,
80
+ ) => function args0Resolver(...args) {
81
+ return baseFunc(args, arg1)
82
+ }
83
+
84
+ // argument resolver for curryArgs2
85
+ const curryArgs2ResolveArgs1 = (
86
+ baseFunc, arg0, arg2,
87
+ ) => function arg1Resolver(...args) {
88
+ return baseFunc(arg0, args)
89
+ }
90
+
91
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
92
+ if (arg0 == __) {
93
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
94
+ }
95
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
96
+ }
97
+
43
98
  const thunkConditional = (
44
99
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
45
100
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -68,7 +123,7 @@ const always = value => function getter() { return value }
68
123
  const areAnyNonfunctionsTruthy = function (predicates, index) {
69
124
  const length = predicates.length
70
125
  while (++index < length) {
71
- let predicate = predicates[index]
126
+ const predicate = predicates[index]
72
127
  if (isPromise(predicate)) {
73
128
  return predicate.then(curry3(
74
129
  thunkConditional,
@@ -84,14 +139,13 @@ const areAnyNonfunctionsTruthy = function (predicates, index) {
84
139
  return false
85
140
  }
86
141
 
87
- const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
142
+ const asyncAreAnyPredicatesTruthy = async function (args, predicates, index) {
88
143
  const length = predicates.length
89
144
  while (++index < length) {
90
145
  let predicate = predicates[index]
91
146
  if (typeof predicate == 'function') {
92
- predicate = predicate(point)
147
+ predicate = predicate(...args)
93
148
  }
94
- console.log('hey - or', predicate)
95
149
  if (isPromise(predicate)) {
96
150
  predicate = await predicate
97
151
  }
@@ -102,33 +156,47 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
102
156
  return false
103
157
  }
104
158
 
105
- const or = predicates => {
106
- if (areAllValuesNonfunctions(predicates)) {
107
- return areAnyNonfunctionsTruthy(predicates, -1)
108
- }
109
- return function areAnyPredicatesTruthy(point) {
110
- const length = predicates.length
111
- let index = -1
112
-
113
- while (++index < length) {
114
- let predicate = predicates[index]
115
- if (typeof predicate == 'function') {
116
- predicate = predicate(point)
117
- }
118
- if (isPromise(predicate)) {
119
- return predicate.then(curry3(
120
- thunkConditional,
121
- __,
122
- always(true),
123
- thunkify3(asyncAreAnyPredicatesTruthy, predicates, point, index),
124
- ))
125
- }
126
- if (predicate) {
127
- return true
128
- }
159
+ // areAnyPredicatesTruthy(args Array, predicates Array<function>) -> Promise|boolean
160
+ const areAnyPredicatesTruthy = function (args, predicates) {
161
+ const length = predicates.length
162
+ let index = -1
163
+
164
+ while (++index < length) {
165
+ let predicate = predicates[index]
166
+ if (typeof predicate == 'function') {
167
+ predicate = predicate(...args)
168
+ }
169
+ if (isPromise(predicate)) {
170
+ return predicate.then(curry3(
171
+ thunkConditional,
172
+ __,
173
+ always(true),
174
+ thunkify3(asyncAreAnyPredicatesTruthy, args, predicates, index),
175
+ ))
176
+ }
177
+ if (predicate) {
178
+ return true
129
179
  }
130
- return false
131
180
  }
181
+ return false
182
+ }
183
+
184
+ const or = function (...args) {
185
+ const predicatesOrValues = args.pop()
186
+ if (areAllValuesNonfunctions(predicatesOrValues)) {
187
+ return areAnyNonfunctionsTruthy(predicatesOrValues, -1)
188
+ }
189
+
190
+ if (args.length == 0) {
191
+ return curryArgs2(areAnyPredicatesTruthy, __, predicatesOrValues)
192
+ }
193
+
194
+ if (areAnyValuesPromises(args)) {
195
+ return promiseAll(args)
196
+ .then(curry2(areAnyPredicatesTruthy, __, predicatesOrValues))
197
+ }
198
+
199
+ return areAnyPredicatesTruthy(args, predicatesOrValues)
132
200
  }
133
201
 
134
202
  export default or
package/dist/or.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 isPromise=n=>null!=n&&"function"==typeof n.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(n,r,t)=>function(e){return n(e,r,t)},curry3ResolveArg1=(n,r,t)=>function(e){return n(r,e,t)},curry3ResolveArg2=(n,r,t)=>function(e){return n(r,t,e)},curry3=function(n,r,t,e){return r==__?curry3ResolveArg0(n,t,e):t==__?curry3ResolveArg1(n,r,e):curry3ResolveArg2(n,r,t)},thunkConditional=(n,r,t)=>n?r():t(),areAllValuesNonfunctions=function(n){const r=n.length;let t=-1;for(;++t<r;)if("function"==typeof n[t])return!1;return!0},thunkify2=(n,r,t)=>function(){return n(r,t)},thunkify3=(n,r,t,e)=>function(){return n(r,t,e)},always=n=>function(){return n},areAnyNonfunctionsTruthy=function(n,r){const t=n.length;for(;++r<t;){let t=n[r];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,n,r)));if(t)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(n,r,t){const e=n.length;for(;++t<e;){let e=n[t];if("function"==typeof e&&(e=e(r)),console.log("hey - or",e),isPromise(e)&&(e=await e),e)return!0}return!1},or=n=>areAllValuesNonfunctions(n)?areAnyNonfunctionsTruthy(n,-1):function(r){const t=n.length;let e=-1;for(;++e<t;){let t=n[e];if("function"==typeof t&&(t=t(r)),isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,n,r,e)));if(t)return!0}return!1};export default or;
7
+ const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},__=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)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},thunkConditional=(r,n,e)=>r?n():e(),areAllValuesNonfunctions=function(r){const n=r.length;let e=-1;for(;++e<n;)if("function"==typeof r[e])return!1;return!0},thunkify2=(r,n,e)=>function(){return r(n,e)},thunkify3=(r,n,e,t)=>function(){return r(n,e,t)},always=r=>function(){return r},areAnyNonfunctionsTruthy=function(r,n){const e=r.length;for(;++n<e;){const e=r[n];if(isPromise(e))return e.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,r,n)));if(e)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(r,n,e){const t=n.length;for(;++e<t;){let t=n[e];if("function"==typeof t&&(t=t(...r)),isPromise(t)&&(t=await t),t)return!0}return!1},areAnyPredicatesTruthy=function(r,n){const e=n.length;let t=-1;for(;++t<e;){let e=n[t];if("function"==typeof e&&(e=e(...r)),isPromise(e))return e.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,r,n,t)));if(e)return!0}return!1},or=function(...r){const n=r.pop();return areAllValuesNonfunctions(n)?areAnyNonfunctionsTruthy(n,-1):0==r.length?(e=areAnyPredicatesTruthy,u=n,(t=__)==__?curryArgs2ResolveArgs0(e,u):curryArgs2ResolveArgs1(e,t)):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAnyPredicatesTruthy,__,n)):areAnyPredicatesTruthy(r,n);var e,t,u};export default or;
package/dist/or.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,10 +11,44 @@
11
11
  else (root.or = or) // Browser
12
12
  }(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
13
13
 
14
+ const promiseAll = Promise.all.bind(Promise)
15
+
14
16
  const isPromise = value => value != null && typeof value.then == 'function'
15
17
 
18
+ const areAnyValuesPromises = function (values) {
19
+ const length = values.length
20
+ let index = -1
21
+ while (++index < length) {
22
+ const value = values[index]
23
+ if (isPromise(value)) {
24
+ return true
25
+ }
26
+ }
27
+ return false
28
+ }
29
+
16
30
  const __ = Symbol.for('placeholder')
17
31
 
32
+ // argument resolver for curry2
33
+ const curry2ResolveArg0 = (
34
+ baseFunc, arg1,
35
+ ) => function arg0Resolver(arg0) {
36
+ return baseFunc(arg0, arg1)
37
+ }
38
+
39
+ // argument resolver for curry2
40
+ const curry2ResolveArg1 = (
41
+ baseFunc, arg0,
42
+ ) => function arg1Resolver(arg1) {
43
+ return baseFunc(arg0, arg1)
44
+ }
45
+
46
+ const curry2 = function (baseFunc, arg0, arg1) {
47
+ return arg0 == __
48
+ ? curry2ResolveArg0(baseFunc, arg1)
49
+ : curry2ResolveArg1(baseFunc, arg0)
50
+ }
51
+
18
52
  // argument resolver for curry3
19
53
  const curry3ResolveArg0 = (
20
54
  baseFunc, arg1, arg2,
@@ -46,6 +80,27 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
46
80
  return curry3ResolveArg2(baseFunc, arg0, arg1)
47
81
  }
48
82
 
83
+ // argument resolver for curryArgs2
84
+ const curryArgs2ResolveArgs0 = (
85
+ baseFunc, arg1, arg2,
86
+ ) => function args0Resolver(...args) {
87
+ return baseFunc(args, arg1)
88
+ }
89
+
90
+ // argument resolver for curryArgs2
91
+ const curryArgs2ResolveArgs1 = (
92
+ baseFunc, arg0, arg2,
93
+ ) => function arg1Resolver(...args) {
94
+ return baseFunc(arg0, args)
95
+ }
96
+
97
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
98
+ if (arg0 == __) {
99
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
100
+ }
101
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
102
+ }
103
+
49
104
  const thunkConditional = (
50
105
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
51
106
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -74,7 +129,7 @@ const always = value => function getter() { return value }
74
129
  const areAnyNonfunctionsTruthy = function (predicates, index) {
75
130
  const length = predicates.length
76
131
  while (++index < length) {
77
- let predicate = predicates[index]
132
+ const predicate = predicates[index]
78
133
  if (isPromise(predicate)) {
79
134
  return predicate.then(curry3(
80
135
  thunkConditional,
@@ -90,14 +145,13 @@ const areAnyNonfunctionsTruthy = function (predicates, index) {
90
145
  return false
91
146
  }
92
147
 
93
- const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
148
+ const asyncAreAnyPredicatesTruthy = async function (args, predicates, index) {
94
149
  const length = predicates.length
95
150
  while (++index < length) {
96
151
  let predicate = predicates[index]
97
152
  if (typeof predicate == 'function') {
98
- predicate = predicate(point)
153
+ predicate = predicate(...args)
99
154
  }
100
- console.log('hey - or', predicate)
101
155
  if (isPromise(predicate)) {
102
156
  predicate = await predicate
103
157
  }
@@ -108,33 +162,47 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
108
162
  return false
109
163
  }
110
164
 
111
- const or = predicates => {
112
- if (areAllValuesNonfunctions(predicates)) {
113
- return areAnyNonfunctionsTruthy(predicates, -1)
114
- }
115
- return function areAnyPredicatesTruthy(point) {
116
- const length = predicates.length
117
- let index = -1
118
-
119
- while (++index < length) {
120
- let predicate = predicates[index]
121
- if (typeof predicate == 'function') {
122
- predicate = predicate(point)
123
- }
124
- if (isPromise(predicate)) {
125
- return predicate.then(curry3(
126
- thunkConditional,
127
- __,
128
- always(true),
129
- thunkify3(asyncAreAnyPredicatesTruthy, predicates, point, index),
130
- ))
131
- }
132
- if (predicate) {
133
- return true
134
- }
165
+ // areAnyPredicatesTruthy(args Array, predicates Array<function>) -> Promise|boolean
166
+ const areAnyPredicatesTruthy = function (args, predicates) {
167
+ const length = predicates.length
168
+ let index = -1
169
+
170
+ while (++index < length) {
171
+ let predicate = predicates[index]
172
+ if (typeof predicate == 'function') {
173
+ predicate = predicate(...args)
174
+ }
175
+ if (isPromise(predicate)) {
176
+ return predicate.then(curry3(
177
+ thunkConditional,
178
+ __,
179
+ always(true),
180
+ thunkify3(asyncAreAnyPredicatesTruthy, args, predicates, index),
181
+ ))
182
+ }
183
+ if (predicate) {
184
+ return true
135
185
  }
136
- return false
137
186
  }
187
+ return false
188
+ }
189
+
190
+ const or = function (...args) {
191
+ const predicatesOrValues = args.pop()
192
+ if (areAllValuesNonfunctions(predicatesOrValues)) {
193
+ return areAnyNonfunctionsTruthy(predicatesOrValues, -1)
194
+ }
195
+
196
+ if (args.length == 0) {
197
+ return curryArgs2(areAnyPredicatesTruthy, __, predicatesOrValues)
198
+ }
199
+
200
+ if (areAnyValuesPromises(args)) {
201
+ return promiseAll(args)
202
+ .then(curry2(areAnyPredicatesTruthy, __, predicatesOrValues))
203
+ }
204
+
205
+ return areAnyPredicatesTruthy(args, predicatesOrValues)
138
206
  }
139
207
 
140
208
  return or
package/dist/or.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.or=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Symbol.for("placeholder"),e=function(n,e,o,r){return e==t?((n,t,e)=>function(o){return n(o,t,e)})(n,o,r):o==t?((n,t,e)=>function(o){return n(t,o,e)})(n,e,r):((n,t,e)=>function(o){return n(t,e,o)})(n,e,o)},o=(n,t,e)=>n?t():e(),r=(n,t,e)=>function(){return n(t,e)},u=(n,t,e,o)=>function(){return n(t,e,o)},f=n=>function(){return n},i=function(u,c){const l=u.length;for(;++c<l;){let l=u[c];if(n(l))return l.then(e(o,t,f(!0),r(i,u,c)));if(l)return!0}return!1},c=async function(t,e,o){const r=t.length;for(;++o<r;){let r=t[o];if("function"==typeof r&&(r=r(e)),console.log("hey - or",r),n(r)&&(r=await r),r)return!0}return!1};return r=>function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0}(r)?i(r,-1):function(i){const l=r.length;let s=-1;for(;++s<l;){let l=r[s];if("function"==typeof l&&(l=l(i)),n(l))return l.then(e(o,t,f(!0),u(c,r,i,s)));if(l)return!0}return!1}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.or=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Promise.all.bind(Promise),t=n=>null!=n&&"function"==typeof n.then,r=Symbol.for("placeholder"),e=function(n,t,e,o){return t==r?((n,t,r)=>function(e){return n(e,t,r)})(n,e,o):e==r?((n,t,r)=>function(e){return n(t,e,r)})(n,t,o):((n,t,r)=>function(e){return n(t,r,e)})(n,t,e)},o=(n,t,r)=>n?t():r(),u=(n,t,r)=>function(){return n(t,r)},f=(n,t,r,e)=>function(){return n(t,r,e)},i=n=>function(){return n},c=function(n,f){const l=n.length;for(;++f<l;){const l=n[f];if(t(l))return l.then(e(o,r,i(!0),u(c,n,f)));if(l)return!0}return!1},l=async function(n,r,e){const o=r.length;for(;++e<o;){let o=r[e];if("function"==typeof o&&(o=o(...n)),t(o)&&(o=await o),o)return!0}return!1},s=function(n,u){const c=u.length;let s=-1;for(;++s<c;){let c=u[s];if("function"==typeof c&&(c=c(...n)),t(c))return c.then(e(o,r,i(!0),f(l,n,u,s)));if(c)return!0}return!1};return function(...e){const o=e.pop();return function(n){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0}(o)?c(o,-1):0==e.length?(u=s,i=o,(f=r)==r?((n,t,r)=>function(...r){return n(r,t)})(u,i):((n,t,r)=>function(...r){return n(t,r)})(u,f)):function(n){const r=n.length;let e=-1;for(;++e<r;){const r=n[e];if(t(r))return!0}return!1}(e)?n(e).then(function(n,t,e){return t==r?((n,t)=>function(r){return n(r,t)})(n,e):((n,t)=>function(r){return n(t,r)})(n,t)}(s,r,o)):s(e,o);var u,f,i}}());
package/dist/or.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 isPromise=n=>null!=n&&"function"==typeof n.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(n,r,t)=>function(e){return n(e,r,t)},curry3ResolveArg1=(n,r,t)=>function(e){return n(r,e,t)},curry3ResolveArg2=(n,r,t)=>function(e){return n(r,t,e)},curry3=function(n,r,t,e){return r==__?curry3ResolveArg0(n,t,e):t==__?curry3ResolveArg1(n,r,e):curry3ResolveArg2(n,r,t)},thunkConditional=(n,r,t)=>n?r():t(),areAllValuesNonfunctions=function(n){const r=n.length;let t=-1;for(;++t<r;)if("function"==typeof n[t])return!1;return!0},thunkify2=(n,r,t)=>function(){return n(r,t)},thunkify3=(n,r,t,e)=>function(){return n(r,t,e)},always=n=>function(){return n},areAnyNonfunctionsTruthy=function(n,r){const t=n.length;for(;++r<t;){let t=n[r];if(isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,n,r)));if(t)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(n,r,t){const e=n.length;for(;++t<e;){let e=n[t];if("function"==typeof e&&(e=e(r)),console.log("hey - or",e),isPromise(e)&&(e=await e),e)return!0}return!1},or=n=>areAllValuesNonfunctions(n)?areAnyNonfunctionsTruthy(n,-1):function(r){const t=n.length;let e=-1;for(;++e<t;){let t=n[e];if("function"==typeof t&&(t=t(r)),isPromise(t))return t.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,n,r,e)));if(t)return!0}return!1};export default or;
7
+ const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},__=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)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},thunkConditional=(r,n,e)=>r?n():e(),areAllValuesNonfunctions=function(r){const n=r.length;let e=-1;for(;++e<n;)if("function"==typeof r[e])return!1;return!0},thunkify2=(r,n,e)=>function(){return r(n,e)},thunkify3=(r,n,e,t)=>function(){return r(n,e,t)},always=r=>function(){return r},areAnyNonfunctionsTruthy=function(r,n){const e=r.length;for(;++n<e;){const e=r[n];if(isPromise(e))return e.then(curry3(thunkConditional,__,always(!0),thunkify2(areAnyNonfunctionsTruthy,r,n)));if(e)return!0}return!1},asyncAreAnyPredicatesTruthy=async function(r,n,e){const t=n.length;for(;++e<t;){let t=n[e];if("function"==typeof t&&(t=t(...r)),isPromise(t)&&(t=await t),t)return!0}return!1},areAnyPredicatesTruthy=function(r,n){const e=n.length;let t=-1;for(;++t<e;){let e=n[t];if("function"==typeof e&&(e=e(...r)),isPromise(e))return e.then(curry3(thunkConditional,__,always(!0),thunkify3(asyncAreAnyPredicatesTruthy,r,n,t)));if(e)return!0}return!1},or=function(...r){const n=r.pop();return areAllValuesNonfunctions(n)?areAnyNonfunctionsTruthy(n,-1):0==r.length?(e=areAnyPredicatesTruthy,u=n,(t=__)==__?curryArgs2ResolveArgs0(e,u):curryArgs2ResolveArgs1(e,t)):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAnyPredicatesTruthy,__,n)):areAnyPredicatesTruthy(r,n);var e,t,u};export default or;
package/dist/or.mjs CHANGED
@@ -1,14 +1,48 @@
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 promiseAll = Promise.all.bind(Promise)
9
+
8
10
  const isPromise = value => value != null && typeof value.then == 'function'
9
11
 
12
+ const areAnyValuesPromises = function (values) {
13
+ const length = values.length
14
+ let index = -1
15
+ while (++index < length) {
16
+ const value = values[index]
17
+ if (isPromise(value)) {
18
+ return true
19
+ }
20
+ }
21
+ return false
22
+ }
23
+
10
24
  const __ = Symbol.for('placeholder')
11
25
 
26
+ // argument resolver for curry2
27
+ const curry2ResolveArg0 = (
28
+ baseFunc, arg1,
29
+ ) => function arg0Resolver(arg0) {
30
+ return baseFunc(arg0, arg1)
31
+ }
32
+
33
+ // argument resolver for curry2
34
+ const curry2ResolveArg1 = (
35
+ baseFunc, arg0,
36
+ ) => function arg1Resolver(arg1) {
37
+ return baseFunc(arg0, arg1)
38
+ }
39
+
40
+ const curry2 = function (baseFunc, arg0, arg1) {
41
+ return arg0 == __
42
+ ? curry2ResolveArg0(baseFunc, arg1)
43
+ : curry2ResolveArg1(baseFunc, arg0)
44
+ }
45
+
12
46
  // argument resolver for curry3
13
47
  const curry3ResolveArg0 = (
14
48
  baseFunc, arg1, arg2,
@@ -40,6 +74,27 @@ const curry3 = function (baseFunc, arg0, arg1, arg2) {
40
74
  return curry3ResolveArg2(baseFunc, arg0, arg1)
41
75
  }
42
76
 
77
+ // argument resolver for curryArgs2
78
+ const curryArgs2ResolveArgs0 = (
79
+ baseFunc, arg1, arg2,
80
+ ) => function args0Resolver(...args) {
81
+ return baseFunc(args, arg1)
82
+ }
83
+
84
+ // argument resolver for curryArgs2
85
+ const curryArgs2ResolveArgs1 = (
86
+ baseFunc, arg0, arg2,
87
+ ) => function arg1Resolver(...args) {
88
+ return baseFunc(arg0, args)
89
+ }
90
+
91
+ const curryArgs2 = function (baseFunc, arg0, arg1) {
92
+ if (arg0 == __) {
93
+ return curryArgs2ResolveArgs0(baseFunc, arg1)
94
+ }
95
+ return curryArgs2ResolveArgs1(baseFunc, arg0)
96
+ }
97
+
43
98
  const thunkConditional = (
44
99
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
45
100
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -68,7 +123,7 @@ const always = value => function getter() { return value }
68
123
  const areAnyNonfunctionsTruthy = function (predicates, index) {
69
124
  const length = predicates.length
70
125
  while (++index < length) {
71
- let predicate = predicates[index]
126
+ const predicate = predicates[index]
72
127
  if (isPromise(predicate)) {
73
128
  return predicate.then(curry3(
74
129
  thunkConditional,
@@ -84,14 +139,13 @@ const areAnyNonfunctionsTruthy = function (predicates, index) {
84
139
  return false
85
140
  }
86
141
 
87
- const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
142
+ const asyncAreAnyPredicatesTruthy = async function (args, predicates, index) {
88
143
  const length = predicates.length
89
144
  while (++index < length) {
90
145
  let predicate = predicates[index]
91
146
  if (typeof predicate == 'function') {
92
- predicate = predicate(point)
147
+ predicate = predicate(...args)
93
148
  }
94
- console.log('hey - or', predicate)
95
149
  if (isPromise(predicate)) {
96
150
  predicate = await predicate
97
151
  }
@@ -102,33 +156,47 @@ const asyncAreAnyPredicatesTruthy = async function (predicates, point, index) {
102
156
  return false
103
157
  }
104
158
 
105
- const or = predicates => {
106
- if (areAllValuesNonfunctions(predicates)) {
107
- return areAnyNonfunctionsTruthy(predicates, -1)
108
- }
109
- return function areAnyPredicatesTruthy(point) {
110
- const length = predicates.length
111
- let index = -1
112
-
113
- while (++index < length) {
114
- let predicate = predicates[index]
115
- if (typeof predicate == 'function') {
116
- predicate = predicate(point)
117
- }
118
- if (isPromise(predicate)) {
119
- return predicate.then(curry3(
120
- thunkConditional,
121
- __,
122
- always(true),
123
- thunkify3(asyncAreAnyPredicatesTruthy, predicates, point, index),
124
- ))
125
- }
126
- if (predicate) {
127
- return true
128
- }
159
+ // areAnyPredicatesTruthy(args Array, predicates Array<function>) -> Promise|boolean
160
+ const areAnyPredicatesTruthy = function (args, predicates) {
161
+ const length = predicates.length
162
+ let index = -1
163
+
164
+ while (++index < length) {
165
+ let predicate = predicates[index]
166
+ if (typeof predicate == 'function') {
167
+ predicate = predicate(...args)
168
+ }
169
+ if (isPromise(predicate)) {
170
+ return predicate.then(curry3(
171
+ thunkConditional,
172
+ __,
173
+ always(true),
174
+ thunkify3(asyncAreAnyPredicatesTruthy, args, predicates, index),
175
+ ))
176
+ }
177
+ if (predicate) {
178
+ return true
129
179
  }
130
- return false
131
180
  }
181
+ return false
182
+ }
183
+
184
+ const or = function (...args) {
185
+ const predicatesOrValues = args.pop()
186
+ if (areAllValuesNonfunctions(predicatesOrValues)) {
187
+ return areAnyNonfunctionsTruthy(predicatesOrValues, -1)
188
+ }
189
+
190
+ if (args.length == 0) {
191
+ return curryArgs2(areAnyPredicatesTruthy, __, predicatesOrValues)
192
+ }
193
+
194
+ if (areAnyValuesPromises(args)) {
195
+ return promiseAll(args)
196
+ .then(curry2(areAnyPredicatesTruthy, __, predicatesOrValues))
197
+ }
198
+
199
+ return areAnyPredicatesTruthy(args, predicatesOrValues)
132
200
  }
133
201
 
134
202
  export default or
package/dist/pick.es.js CHANGED
@@ -1,10 +1,12 @@
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 isPromise = value => value != null && typeof value.then == 'function'
9
+
8
10
  const isArray = Array.isArray
9
11
 
10
12
  const memoizeCappedUnary = function (func, cap) {
@@ -99,7 +101,30 @@ const setByPath = function (obj, value, path) {
99
101
  return result
100
102
  }
101
103
 
102
- const pick = keys => function picking(source) {
104
+ const __ = Symbol.for('placeholder')
105
+
106
+ // argument resolver for curry2
107
+ const curry2ResolveArg0 = (
108
+ baseFunc, arg1,
109
+ ) => function arg0Resolver(arg0) {
110
+ return baseFunc(arg0, arg1)
111
+ }
112
+
113
+ // argument resolver for curry2
114
+ const curry2ResolveArg1 = (
115
+ baseFunc, arg0,
116
+ ) => function arg1Resolver(arg1) {
117
+ return baseFunc(arg0, arg1)
118
+ }
119
+
120
+ const curry2 = function (baseFunc, arg0, arg1) {
121
+ return arg0 == __
122
+ ? curry2ResolveArg0(baseFunc, arg1)
123
+ : curry2ResolveArg1(baseFunc, arg0)
124
+ }
125
+
126
+ // _pick(source Object, keys Array<string>) -> result Object
127
+ const _pick = function (source, keys) {
103
128
  if (source == null) {
104
129
  return source
105
130
  }
@@ -116,4 +141,14 @@ const pick = keys => function picking(source) {
116
141
  return result
117
142
  }
118
143
 
144
+ const pick = function (arg0, arg1) {
145
+ if (arg1 == null) {
146
+ return curry2(_pick, __, arg0)
147
+ }
148
+ if (isPromise(arg0)) {
149
+ return arg0.then(curry2(_pick, __, arg1))
150
+ }
151
+ return _pick(arg0, arg1)
152
+ }
153
+
119
154
  export default pick