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
@@ -1,10 +1,34 @@
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
+
10
+ const __ = Symbol.for('placeholder')
11
+
12
+ // argument resolver for curry2
13
+ const curry2ResolveArg0 = (
14
+ baseFunc, arg1,
15
+ ) => function arg0Resolver(arg0) {
16
+ return baseFunc(arg0, arg1)
17
+ }
18
+
19
+ // argument resolver for curry2
20
+ const curry2ResolveArg1 = (
21
+ baseFunc, arg0,
22
+ ) => function arg1Resolver(arg1) {
23
+ return baseFunc(arg0, arg1)
24
+ }
25
+
26
+ const curry2 = function (baseFunc, arg0, arg1) {
27
+ return arg0 == __
28
+ ? curry2ResolveArg0(baseFunc, arg1)
29
+ : curry2ResolveArg1(baseFunc, arg0)
30
+ }
31
+
8
32
  const isArray = Array.isArray
9
33
 
10
34
  const objectValues = Object.values
@@ -14,11 +38,9 @@ const SelfReferencingPromise = function (basePromise) {
14
38
  return promise
15
39
  }
16
40
 
17
- const isPromise = value => value != null && typeof value.then == 'function'
18
-
19
41
  const promiseRace = Promise.race.bind(Promise)
20
42
 
21
- const asyncArrayAny = async function (
43
+ const asyncArraySome = async function (
22
44
  array, predicate, index, promisesInFlight,
23
45
  ) {
24
46
  const length = array.length
@@ -41,13 +63,13 @@ const asyncArrayAny = async function (
41
63
  return false
42
64
  }
43
65
 
44
- const arrayAny = function (array, predicate) {
66
+ const arraySome = function (array, predicate) {
45
67
  const length = array.length
46
68
  let index = -1
47
69
  while (++index < length) {
48
70
  const predication = predicate(array[index])
49
71
  if (isPromise(predication)) {
50
- return asyncArrayAny(
72
+ return asyncArraySome(
51
73
  array, predicate, index, new Set([SelfReferencingPromise(predication)]))
52
74
  }
53
75
  if (predication) {
@@ -57,7 +79,7 @@ const arrayAny = function (array, predicate) {
57
79
  return false
58
80
  }
59
81
 
60
- const asyncIteratorAny = async function (
82
+ const asyncIteratorSome = async function (
61
83
  iterator, predicate, promisesInFlight, maxConcurrency = 20,
62
84
  ) {
63
85
  let iteration = iterator.next()
@@ -94,11 +116,11 @@ const asyncIteratorAny = async function (
94
116
  return false
95
117
  }
96
118
 
97
- const iteratorAny = function (iterator, predicate) {
119
+ const iteratorSome = function (iterator, predicate) {
98
120
  for (const item of iterator) {
99
121
  const predication = predicate(item)
100
122
  if (isPromise(predication)) {
101
- return asyncIteratorAny(
123
+ return asyncIteratorSome(
102
124
  iterator, predicate, new Set([SelfReferencingPromise(predication)]))
103
125
  }
104
126
  if (predication) {
@@ -112,29 +134,7 @@ const reducerAnySync = predicate => function anyReducer(result, item) {
112
134
  return result ? true : predicate(item)
113
135
  }
114
136
 
115
- const __ = Symbol.for('placeholder')
116
-
117
- // argument resolver for curry2
118
- const curry2ResolveArg0 = (
119
- baseFunc, arg1,
120
- ) => function arg0Resolver(arg0) {
121
- return baseFunc(arg0, arg1)
122
- }
123
-
124
- // argument resolver for curry2
125
- const curry2ResolveArg1 = (
126
- baseFunc, arg0,
127
- ) => function arg1Resolver(arg1) {
128
- return baseFunc(arg0, arg1)
129
- }
130
-
131
- const curry2 = function (baseFunc, arg0, arg1) {
132
- return arg0 == __
133
- ? curry2ResolveArg0(baseFunc, arg1)
134
- : curry2ResolveArg1(baseFunc, arg0)
135
- }
136
-
137
- const reducerAny = predicate => function anyReducer(result, item) {
137
+ const reducerSome = predicate => function anyReducer(result, item) {
138
138
  return result === true ? result
139
139
  : isPromise(result) ? result.then(curry2(reducerAnySync(predicate), __, item))
140
140
  : result ? true : predicate(item)
@@ -144,26 +144,43 @@ const symbolIterator = Symbol.iterator
144
144
 
145
145
  const symbolAsyncIterator = Symbol.asyncIterator
146
146
 
147
- const any = predicate => function anyTruthy(value) {
148
- if (isArray(value)) {
149
- return arrayAny(value, predicate)
147
+ // _some(collection Array|Iterable|AsyncIterable|{ reduce: function }|Object, predicate function) -> Promise|boolean
148
+ const _some = function (collection, predicate) {
149
+ if (isArray(collection)) {
150
+ return arraySome(collection, predicate)
150
151
  }
151
- if (value == null) {
152
- return predicate(value)
152
+ if (collection == null) {
153
+ return predicate(collection)
153
154
  }
154
- if (typeof value[symbolIterator] == 'function') {
155
- return iteratorAny(value[symbolIterator](), predicate)
155
+ if (typeof collection[symbolIterator] == 'function') {
156
+ return iteratorSome(collection[symbolIterator](), predicate)
156
157
  }
157
- if (typeof value[symbolAsyncIterator] == 'function') {
158
- return asyncIteratorAny(value[symbolAsyncIterator](), predicate, new Set())
158
+ if (typeof collection[symbolAsyncIterator] == 'function') {
159
+ return asyncIteratorSome(
160
+ collection[symbolAsyncIterator](), predicate, new Set()
161
+ )
159
162
  }
160
- if (typeof value.reduce == 'function') {
161
- return value.reduce(reducerAny(predicate), false)
163
+ if (typeof collection.reduce == 'function') {
164
+ return collection.reduce(reducerSome(predicate), false)
162
165
  }
163
- if (value.constructor == Object) {
164
- return arrayAny(objectValues(value), predicate)
166
+ if (collection.constructor == Object) {
167
+ return arraySome(objectValues(collection), predicate)
165
168
  }
166
- return predicate(value)
169
+ return predicate(collection)
170
+ }
171
+
172
+ const some = function (...args) {
173
+ const predicate = args.pop()
174
+ if (args.length == 0) {
175
+ return curry2(_some, __, predicate)
176
+ }
177
+
178
+ const collection = args[0]
179
+ if (isPromise(collection)) {
180
+ return collection.then(curry2(_some, __, predicate))
181
+ }
182
+
183
+ return _some(collection, predicate)
167
184
  }
168
185
 
169
- export default any
186
+ export default some
@@ -1,12 +1,26 @@
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 thunkConditional = (
11
25
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
12
26
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -134,13 +148,49 @@ const nonfunctionsConditional = function (array, index) {
134
148
  return array[index]
135
149
  }
136
150
 
137
- const switchCase = values => {
151
+ // argument resolver for curryArgs3
152
+ const curryArgs3ResolveArgs0 = (
153
+ baseFunc, arg1, arg2,
154
+ ) => function args0Resolver(...args) {
155
+ return baseFunc(args, arg1, arg2)
156
+ }
157
+
158
+ // argument resolver for curryArgs3
159
+ const curryArgs3ResolveArgs1 = (
160
+ baseFunc, arg0, arg2,
161
+ ) => function arg1Resolver(...args) {
162
+ return baseFunc(arg0, args, arg2)
163
+ }
164
+
165
+ // argument resolver for curryArgs3
166
+ const curryArgs3ResolveArgs2 = (
167
+ baseFunc, arg0, arg1,
168
+ ) => function arg2Resolver(...args) {
169
+ return baseFunc(arg0, arg1, args)
170
+ }
171
+
172
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
173
+ if (arg0 == __) {
174
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
175
+ }
176
+ if (arg1 == __) {
177
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
178
+ }
179
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
180
+ }
181
+
182
+ const switchCase = (...args) => {
183
+ const values = args.pop()
138
184
  if (areAllValuesNonfunctions(values)) {
139
185
  return nonfunctionsConditional(values, -2)
140
186
  }
141
- return function switchingCases(...args) {
142
- return arrayConditional(values, args, -2)
187
+ if (args.length == 0) {
188
+ return curryArgs3(arrayConditional, values, __, -2)
189
+ }
190
+ if (areAnyValuesPromises(args)) {
191
+ return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
143
192
  }
193
+ return arrayConditional(values, args, -2)
144
194
  }
145
195
 
146
196
  export default switchCase
@@ -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,thunkConditional=(n,t,r)=>n?t():r(),thunkifyArgs=(n,t)=>function(){return n(...t)},thunkify3=(n,t,r,o)=>function(){return n(t,r,o)},__=Symbol.for("placeholder"),curry3ResolveArg0=(n,t,r)=>function(o){return n(o,t,r)},curry3ResolveArg1=(n,t,r)=>function(o){return n(t,o,r)},curry3ResolveArg2=(n,t,r)=>function(o){return n(t,r,o)},curry3=function(n,t,r,o){return t==__?curry3ResolveArg0(n,r,o):r==__?curry3ResolveArg1(n,t,o):curry3ResolveArg2(n,t,r)},always=n=>function(){return n},arrayConditional=function(n,t,r){const o=n.length-1;for(;(r+=2)<o;){const o=n[r],u=n[r+1],i="function"==typeof o?o(...t):o;if(isPromise(i))return i.then(curry3(thunkConditional,__,"function"==typeof u?thunkifyArgs(u,t):always(u),thunkify3(arrayConditional,n,t,r)));if(i)return"function"==typeof u?u(...t):u}if(r==n.length)return;const u=n[o];return"function"==typeof u?u(...t):u},areAllValuesNonfunctions=function(n){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0},thunkify2=(n,t,r)=>function(){return n(t,r)},nonfunctionsConditional=function(n,t){const r=n.length,o=r-1;for(;(t+=2)<o;){const r=n[t],o=n[t+1];if(isPromise(r))return r.then(curry3(thunkConditional,__,always(o),thunkify2(nonfunctionsConditional,n,t)));if(r)return o}if(t!=r)return n[t]},switchCase=n=>areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):function(...t){return arrayConditional(n,t,-2)};export default switchCase;
7
+ const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let o=-1;for(;++o<n;){const n=r[o];if(isPromise(n))return!0}return!1},thunkConditional=(r,n,o)=>r?n():o(),thunkifyArgs=(r,n)=>function(){return r(...n)},thunkify3=(r,n,o,t)=>function(){return r(n,o,t)},__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},always=r=>function(){return r},arrayConditional=function(r,n,o){const t=r.length-1;for(;(o+=2)<t;){const t=r[o],e=r[o+1],u="function"==typeof t?t(...n):t;if(isPromise(u))return u.then(curry3(thunkConditional,__,"function"==typeof e?thunkifyArgs(e,n):always(e),thunkify3(arrayConditional,r,n,o)));if(u)return"function"==typeof e?e(...n):e}if(o==r.length)return;const e=r[t];return"function"==typeof e?e(...n):e},areAllValuesNonfunctions=function(r){const n=r.length;let o=-1;for(;++o<n;)if("function"==typeof r[o])return!1;return!0},thunkify2=(r,n,o)=>function(){return r(n,o)},nonfunctionsConditional=function(r,n){const o=r.length,t=o-1;for(;(n+=2)<t;){const o=r[n],t=r[n+1];if(isPromise(o))return o.then(curry3(thunkConditional,__,always(t),thunkify2(nonfunctionsConditional,r,n)));if(o)return t}if(n!=o)return r[n]},curryArgs3ResolveArgs0=(r,n,o)=>function(...t){return r(t,n,o)},curryArgs3ResolveArgs1=(r,n,o)=>function(...t){return r(n,t,o)},curryArgs3ResolveArgs2=(r,n,o)=>function(...t){return r(n,o,t)},curryArgs3=function(r,n,o,t){return n==__?curryArgs3ResolveArgs0(r,o,t):o==__?curryArgs3ResolveArgs1(r,n,t):curryArgs3ResolveArgs2(r,n,o)},switchCase=(...r)=>{const n=r.pop();return areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):0==r.length?(o=arrayConditional,e=__,u=-2,(t=n)==__?curryArgs3ResolveArgs0(o,e,u):e==__?curryArgs3ResolveArgs1(o,t,u):curryArgs3ResolveArgs2(o,t,e)):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,n,__,-2)):arrayConditional(n,r,-2);var o,t,e,u};export default switchCase;
@@ -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,8 +11,22 @@
11
11
  else (root.switchCase = switchCase) // 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 thunkConditional = (
17
31
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
18
32
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -140,13 +154,49 @@ const nonfunctionsConditional = function (array, index) {
140
154
  return array[index]
141
155
  }
142
156
 
143
- const switchCase = values => {
157
+ // argument resolver for curryArgs3
158
+ const curryArgs3ResolveArgs0 = (
159
+ baseFunc, arg1, arg2,
160
+ ) => function args0Resolver(...args) {
161
+ return baseFunc(args, arg1, arg2)
162
+ }
163
+
164
+ // argument resolver for curryArgs3
165
+ const curryArgs3ResolveArgs1 = (
166
+ baseFunc, arg0, arg2,
167
+ ) => function arg1Resolver(...args) {
168
+ return baseFunc(arg0, args, arg2)
169
+ }
170
+
171
+ // argument resolver for curryArgs3
172
+ const curryArgs3ResolveArgs2 = (
173
+ baseFunc, arg0, arg1,
174
+ ) => function arg2Resolver(...args) {
175
+ return baseFunc(arg0, arg1, args)
176
+ }
177
+
178
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
179
+ if (arg0 == __) {
180
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
181
+ }
182
+ if (arg1 == __) {
183
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
184
+ }
185
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
186
+ }
187
+
188
+ const switchCase = (...args) => {
189
+ const values = args.pop()
144
190
  if (areAllValuesNonfunctions(values)) {
145
191
  return nonfunctionsConditional(values, -2)
146
192
  }
147
- return function switchingCases(...args) {
148
- return arrayConditional(values, args, -2)
193
+ if (args.length == 0) {
194
+ return curryArgs3(arrayConditional, values, __, -2)
195
+ }
196
+ if (areAnyValuesPromises(args)) {
197
+ return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
149
198
  }
199
+ return arrayConditional(values, args, -2)
150
200
  }
151
201
 
152
202
  return switchCase
@@ -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.switchCase=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=(n,t,o)=>n?t():o(),o=(n,t)=>function(){return n(...t)},e=(n,t,o,e)=>function(){return n(t,o,e)},r=Symbol.for("placeholder"),u=function(n,t,o,e){return t==r?((n,t,o)=>function(e){return n(e,t,o)})(n,o,e):o==r?((n,t,o)=>function(e){return n(t,e,o)})(n,t,e):((n,t,o)=>function(e){return n(t,o,e)})(n,t,o)},f=n=>function(){return n},i=function(c,l,s){const h=c.length-1;for(;(s+=2)<h;){const h=c[s],p=c[s+1],y="function"==typeof h?h(...l):h;if(n(y))return y.then(u(t,r,"function"==typeof p?o(p,l):f(p),e(i,c,l,s)));if(y)return"function"==typeof p?p(...l):p}if(s==c.length)return;const p=c[h];return"function"==typeof p?p(...l):p},c=(n,t,o)=>function(){return n(t,o)},l=function(o,e){const i=o.length,s=i-1;for(;(e+=2)<s;){const i=o[e],s=o[e+1];if(n(i))return i.then(u(t,r,f(s),c(l,o,e)));if(i)return s}if(e!=i)return o[e]};return n=>function(n){const t=n.length;let o=-1;for(;++o<t;)if("function"==typeof n[o])return!1;return!0}(n)?l(n,-2):function(...t){return i(n,t,-2)}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.switchCase=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Promise.all.bind(Promise),t=n=>null!=n&&"function"==typeof n.then,e=(n,t,e)=>n?t():e(),o=(n,t)=>function(){return n(...t)},r=(n,t,e,o)=>function(){return n(t,e,o)},u=Symbol.for("placeholder"),f=function(n,t,e,o){return t==u?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==u?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},i=n=>function(){return n},c=function(n,l,s){const h=n.length-1;for(;(s+=2)<h;){const h=n[s],p=n[s+1],y="function"==typeof h?h(...l):h;if(t(y))return y.then(f(e,u,"function"==typeof p?o(p,l):i(p),r(c,n,l,s)));if(y)return"function"==typeof p?p(...l):p}if(s==n.length)return;const p=n[h];return"function"==typeof p?p(...l):p},l=(n,t,e)=>function(){return n(t,e)},s=function(n,o){const r=n.length,c=r-1;for(;(o+=2)<c;){const r=n[o],c=n[o+1];if(t(r))return r.then(f(e,u,i(c),l(s,n,o)));if(r)return c}if(o!=r)return n[o]};return(...e)=>{const o=e.pop();return function(n){const t=n.length;let e=-1;for(;++e<t;)if("function"==typeof n[e])return!1;return!0}(o)?s(o,-2):0==e.length?(r=c,l=u,h=-2,(i=o)==u?((n,t,e)=>function(...o){return n(o,t,e)})(r,l,h):l==u?((n,t,e)=>function(...o){return n(t,o,e)})(r,i,h):((n,t,e)=>function(...o){return n(t,e,o)})(r,i,l)):function(n){const e=n.length;let o=-1;for(;++o<e;){const e=n[o];if(t(e))return!0}return!1}(e)?n(e).then(f(c,o,u,-2)):c(o,e,-2);var r,i,l,h}}());
@@ -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,thunkConditional=(n,t,r)=>n?t():r(),thunkifyArgs=(n,t)=>function(){return n(...t)},thunkify3=(n,t,r,o)=>function(){return n(t,r,o)},__=Symbol.for("placeholder"),curry3ResolveArg0=(n,t,r)=>function(o){return n(o,t,r)},curry3ResolveArg1=(n,t,r)=>function(o){return n(t,o,r)},curry3ResolveArg2=(n,t,r)=>function(o){return n(t,r,o)},curry3=function(n,t,r,o){return t==__?curry3ResolveArg0(n,r,o):r==__?curry3ResolveArg1(n,t,o):curry3ResolveArg2(n,t,r)},always=n=>function(){return n},arrayConditional=function(n,t,r){const o=n.length-1;for(;(r+=2)<o;){const o=n[r],u=n[r+1],i="function"==typeof o?o(...t):o;if(isPromise(i))return i.then(curry3(thunkConditional,__,"function"==typeof u?thunkifyArgs(u,t):always(u),thunkify3(arrayConditional,n,t,r)));if(i)return"function"==typeof u?u(...t):u}if(r==n.length)return;const u=n[o];return"function"==typeof u?u(...t):u},areAllValuesNonfunctions=function(n){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0},thunkify2=(n,t,r)=>function(){return n(t,r)},nonfunctionsConditional=function(n,t){const r=n.length,o=r-1;for(;(t+=2)<o;){const r=n[t],o=n[t+1];if(isPromise(r))return r.then(curry3(thunkConditional,__,always(o),thunkify2(nonfunctionsConditional,n,t)));if(r)return o}if(t!=r)return n[t]},switchCase=n=>areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):function(...t){return arrayConditional(n,t,-2)};export default switchCase;
7
+ const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let o=-1;for(;++o<n;){const n=r[o];if(isPromise(n))return!0}return!1},thunkConditional=(r,n,o)=>r?n():o(),thunkifyArgs=(r,n)=>function(){return r(...n)},thunkify3=(r,n,o,t)=>function(){return r(n,o,t)},__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,o)=>function(t){return r(t,n,o)},curry3ResolveArg1=(r,n,o)=>function(t){return r(n,t,o)},curry3ResolveArg2=(r,n,o)=>function(t){return r(n,o,t)},curry3=function(r,n,o,t){return n==__?curry3ResolveArg0(r,o,t):o==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,o)},always=r=>function(){return r},arrayConditional=function(r,n,o){const t=r.length-1;for(;(o+=2)<t;){const t=r[o],e=r[o+1],u="function"==typeof t?t(...n):t;if(isPromise(u))return u.then(curry3(thunkConditional,__,"function"==typeof e?thunkifyArgs(e,n):always(e),thunkify3(arrayConditional,r,n,o)));if(u)return"function"==typeof e?e(...n):e}if(o==r.length)return;const e=r[t];return"function"==typeof e?e(...n):e},areAllValuesNonfunctions=function(r){const n=r.length;let o=-1;for(;++o<n;)if("function"==typeof r[o])return!1;return!0},thunkify2=(r,n,o)=>function(){return r(n,o)},nonfunctionsConditional=function(r,n){const o=r.length,t=o-1;for(;(n+=2)<t;){const o=r[n],t=r[n+1];if(isPromise(o))return o.then(curry3(thunkConditional,__,always(t),thunkify2(nonfunctionsConditional,r,n)));if(o)return t}if(n!=o)return r[n]},curryArgs3ResolveArgs0=(r,n,o)=>function(...t){return r(t,n,o)},curryArgs3ResolveArgs1=(r,n,o)=>function(...t){return r(n,t,o)},curryArgs3ResolveArgs2=(r,n,o)=>function(...t){return r(n,o,t)},curryArgs3=function(r,n,o,t){return n==__?curryArgs3ResolveArgs0(r,o,t):o==__?curryArgs3ResolveArgs1(r,n,t):curryArgs3ResolveArgs2(r,n,o)},switchCase=(...r)=>{const n=r.pop();return areAllValuesNonfunctions(n)?nonfunctionsConditional(n,-2):0==r.length?(o=arrayConditional,e=__,u=-2,(t=n)==__?curryArgs3ResolveArgs0(o,e,u):e==__?curryArgs3ResolveArgs1(o,t,u):curryArgs3ResolveArgs2(o,t,e)):areAnyValuesPromises(r)?promiseAll(r).then(curry3(arrayConditional,n,__,-2)):arrayConditional(n,r,-2);var o,t,e,u};export default switchCase;
@@ -1,12 +1,26 @@
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 thunkConditional = (
11
25
  conditionalExpression, thunkOnTruthy, thunkOnFalsy,
12
26
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
@@ -134,13 +148,49 @@ const nonfunctionsConditional = function (array, index) {
134
148
  return array[index]
135
149
  }
136
150
 
137
- const switchCase = values => {
151
+ // argument resolver for curryArgs3
152
+ const curryArgs3ResolveArgs0 = (
153
+ baseFunc, arg1, arg2,
154
+ ) => function args0Resolver(...args) {
155
+ return baseFunc(args, arg1, arg2)
156
+ }
157
+
158
+ // argument resolver for curryArgs3
159
+ const curryArgs3ResolveArgs1 = (
160
+ baseFunc, arg0, arg2,
161
+ ) => function arg1Resolver(...args) {
162
+ return baseFunc(arg0, args, arg2)
163
+ }
164
+
165
+ // argument resolver for curryArgs3
166
+ const curryArgs3ResolveArgs2 = (
167
+ baseFunc, arg0, arg1,
168
+ ) => function arg2Resolver(...args) {
169
+ return baseFunc(arg0, arg1, args)
170
+ }
171
+
172
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
173
+ if (arg0 == __) {
174
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
175
+ }
176
+ if (arg1 == __) {
177
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
178
+ }
179
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
180
+ }
181
+
182
+ const switchCase = (...args) => {
183
+ const values = args.pop()
138
184
  if (areAllValuesNonfunctions(values)) {
139
185
  return nonfunctionsConditional(values, -2)
140
186
  }
141
- return function switchingCases(...args) {
142
- return arrayConditional(values, args, -2)
187
+ if (args.length == 0) {
188
+ return curryArgs3(arrayConditional, values, __, -2)
189
+ }
190
+ if (areAnyValuesPromises(args)) {
191
+ return promiseAll(args).then(curry3(arrayConditional, values, __, -2))
143
192
  }
193
+ return arrayConditional(values, args, -2)
144
194
  }
145
195
 
146
196
  export default switchCase
package/dist/tap.es.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
 
@@ -9,11 +9,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
9
9
 
10
10
  const always = value => function getter() { return value }
11
11
 
12
- const tapSync = func => function tapping(...args) {
13
- func(...args)
14
- return args[0]
15
- }
16
-
17
12
  const thunkifyArgs = (func, args) => function thunk() {
18
13
  return func(...args)
19
14
  }
@@ -61,8 +56,6 @@ const tap = func => function tapping(...args) {
61
56
  return isPromise(call) ? call.then(always(result)) : result
62
57
  }
63
58
 
64
- tap.sync = tapSync
65
-
66
59
  tap.if = (predicate, func) => function tappingIf(...args) {
67
60
  const predication = predicate(...args)
68
61
  if (isPromise(predication)) {
@@ -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=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},tapSync=r=>function(...n){return r(...n),n[0]},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,t)=>r?n():t(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,t)=>function(e){return r(e,n,t)},curry3ResolveArg1=(r,n,t)=>function(e){return r(n,e,t)},curry3ResolveArg2=(r,n,t)=>function(e){return r(n,t,e)},curry3=function(r,n,t,e){return n==__?curry3ResolveArg0(r,t,e):t==__?curry3ResolveArg1(r,n,e):curry3ResolveArg2(r,n,t)},tap=r=>function(...n){const t=n[0],e=r(...n);return isPromise(e)?e.then(always(t)):t};tap.sync=tapSync,tap.if=(r,n)=>function(...t){const e=r(...t);if(isPromise(e))return e.then((u=thunkConditional,o=__,c=thunkifyArgs(tap(n),t),i=always(t[0]),o==__?curry3ResolveArg0(u,c,i):c==__?curry3ResolveArg1(u,o,i):curry3ResolveArg2(u,o,c)));var u,o,c,i;if(e){const r=n(...t);if(isPromise(r))return r.then(always(t[0]))}return t[0]};export default tap;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),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)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
package/dist/tap.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
 
@@ -15,11 +15,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
15
15
 
16
16
  const always = value => function getter() { return value }
17
17
 
18
- const tapSync = func => function tapping(...args) {
19
- func(...args)
20
- return args[0]
21
- }
22
-
23
18
  const thunkifyArgs = (func, args) => function thunk() {
24
19
  return func(...args)
25
20
  }
@@ -67,8 +62,6 @@ const tap = func => function tapping(...args) {
67
62
  return isPromise(call) ? call.then(always(result)) : result
68
63
  }
69
64
 
70
- tap.sync = tapSync
71
-
72
65
  tap.if = (predicate, func) => function tappingIf(...args) {
73
66
  const predication = predicate(...args)
74
67
  if (isPromise(predication)) {
package/dist/tap.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.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.sync=n=>function(...t){return n(...t),t[0]},r.if=(u,f)=>function(...i){const c=u(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(r(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},r}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},e=(n,t,e)=>n?t():e(),o=Symbol.for("placeholder"),r=e=>function(...o){const r=o[0],u=e(...o);return n(u)?u.then(t(r)):r};return r.if=(u,f)=>function(...i){const c=u(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(r(f),i),p=t(i[0]),s==o?((n,t,e)=>function(o){return n(o,t,e)})(l,h,p):h==o?((n,t,e)=>function(o){return n(t,o,e)})(l,s,p):((n,t,e)=>function(o){return n(t,e,o)})(l,s,h)));var l,s,h,p;if(c){const e=f(...i);if(n(e))return e.then(t(i[0]))}return i[0]},r}());
package/dist/tap.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=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},tapSync=r=>function(...n){return r(...n),n[0]},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,t)=>r?n():t(),__=Symbol.for("placeholder"),curry3ResolveArg0=(r,n,t)=>function(e){return r(e,n,t)},curry3ResolveArg1=(r,n,t)=>function(e){return r(n,e,t)},curry3ResolveArg2=(r,n,t)=>function(e){return r(n,t,e)},curry3=function(r,n,t,e){return n==__?curry3ResolveArg0(r,t,e):t==__?curry3ResolveArg1(r,n,e):curry3ResolveArg2(r,n,t)},tap=r=>function(...n){const t=n[0],e=r(...n);return isPromise(e)?e.then(always(t)):t};tap.sync=tapSync,tap.if=(r,n)=>function(...t){const e=r(...t);if(isPromise(e))return e.then((u=thunkConditional,o=__,c=thunkifyArgs(tap(n),t),i=always(t[0]),o==__?curry3ResolveArg0(u,c,i):c==__?curry3ResolveArg1(u,o,i):curry3ResolveArg2(u,o,c)));var u,o,c,i;if(e){const r=n(...t);if(isPromise(r))return r.then(always(t[0]))}return t[0]};export default tap;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,n)=>function(){return r(...n)},thunkConditional=(r,n,e)=>r?n():e(),__=Symbol.for("placeholder"),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)},tap=r=>function(...n){const e=n[0],t=r(...n);return isPromise(t)?t.then(always(e)):e};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then((o=thunkConditional,u=__,i=thunkifyArgs(tap(n),e),s=always(e[0]),u==__?curry3ResolveArg0(o,i,s):i==__?curry3ResolveArg1(o,u,s):curry3ResolveArg2(o,u,i)));var o,u,i,s;if(t){const r=n(...e);if(isPromise(r))return r.then(always(e[0]))}return e[0]};export default tap;
package/dist/tap.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
7
 
@@ -9,11 +9,6 @@ const isPromise = value => value != null && typeof value.then == 'function'
9
9
 
10
10
  const always = value => function getter() { return value }
11
11
 
12
- const tapSync = func => function tapping(...args) {
13
- func(...args)
14
- return args[0]
15
- }
16
-
17
12
  const thunkifyArgs = (func, args) => function thunk() {
18
13
  return func(...args)
19
14
  }
@@ -61,8 +56,6 @@ const tap = func => function tapping(...args) {
61
56
  return isPromise(call) ? call.then(always(result)) : result
62
57
  }
63
58
 
64
- tap.sync = tapSync
65
-
66
59
  tap.if = (predicate, func) => function tappingIf(...args) {
67
60
  const predication = predicate(...args)
68
61
  if (isPromise(predication)) {