rubico 1.9.7 → 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 (587) 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 +75 -26
  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 +106 -40
  53. package/and.js +54 -36
  54. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  55. package/archive/_Promise-2023-05-29.js +93 -0
  56. package/archive/arrayMap2-2023-05-29.js +73 -0
  57. package/archive/benchmarks-v1.9.7/all.js +34 -0
  58. package/archive/benchmarks-v1.9.7/and.js +24 -0
  59. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  60. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  61. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  62. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  63. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  64. package/archive/benchmarks-v1.9.7/get.js +44 -0
  65. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  66. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  67. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  69. package/archive/benchmarks-v1.9.7/map.js +892 -0
  70. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  71. package/archive/benchmarks-v1.9.7/or.js +51 -0
  72. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  73. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  74. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  75. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  76. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  77. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  78. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  79. package/assign.js +18 -8
  80. package/bench +65 -0
  81. package/benchmark-output/v1.9.7 +268 -0
  82. package/benchmarks/all.async.js +43 -0
  83. package/benchmarks/all.js +42 -33
  84. package/benchmarks/always.js +15 -0
  85. package/benchmarks/and.async.js +25 -0
  86. package/benchmarks/and.js +20 -19
  87. package/benchmarks/assign.async.js +27 -0
  88. package/benchmarks/assign.js +20 -167
  89. package/benchmarks/curry.js +34 -54
  90. package/benchmarks/eq.async.js +23 -0
  91. package/benchmarks/eq.js +17 -19
  92. package/benchmarks/every.async.js +19 -0
  93. package/benchmarks/every.js +19 -0
  94. package/benchmarks/filter.async.js +32 -0
  95. package/benchmarks/filter.js +27 -1311
  96. package/benchmarks/flatMap.async.js +26 -0
  97. package/benchmarks/flatMap.js +26 -36
  98. package/benchmarks/get.async.js +19 -0
  99. package/benchmarks/get.js +27 -32
  100. package/benchmarks/gt.async.js +23 -0
  101. package/benchmarks/gt.js +17 -19
  102. package/benchmarks/gte.async.js +23 -0
  103. package/benchmarks/gte.js +17 -19
  104. package/benchmarks/lt.async.js +23 -0
  105. package/benchmarks/lt.js +17 -19
  106. package/benchmarks/lte.async.js +23 -0
  107. package/benchmarks/lte.js +17 -19
  108. package/benchmarks/map.async.js +43 -0
  109. package/benchmarks/map.js +24 -876
  110. package/benchmarks/misc/Promise.js +26 -0
  111. package/benchmarks/misc/isPromise.js +30 -0
  112. package/benchmarks/misc/promiseAll.js +36 -0
  113. package/benchmarks/not.js +23 -0
  114. package/benchmarks/omit.js +30 -20
  115. package/benchmarks/or.async.js +25 -0
  116. package/benchmarks/or.js +23 -49
  117. package/benchmarks/pick.js +30 -16
  118. package/benchmarks/pipe.async.js +47 -0
  119. package/benchmarks/pipe.js +46 -151
  120. package/benchmarks/reduce.async.js +32 -0
  121. package/benchmarks/reduce.js +27 -728
  122. package/benchmarks/set.async.js +19 -0
  123. package/benchmarks/set.js +41 -0
  124. package/benchmarks/some.async.js +19 -0
  125. package/benchmarks/some.js +19 -0
  126. package/benchmarks/switchCase.async.js +27 -0
  127. package/benchmarks/switchCase.js +55 -256
  128. package/benchmarks/tap.js +10 -85
  129. package/benchmarks/thunkify.js +15 -0
  130. package/benchmarks/transform.async.js +27 -0
  131. package/benchmarks/transform.js +28 -206
  132. package/benchmarks/tryCatch.async.js +25 -0
  133. package/benchmarks/tryCatch.js +24 -100
  134. package/{distributor.js → build} +50 -50
  135. package/compose.js +46 -0
  136. package/dist/__.es.js +2 -2
  137. package/dist/__.es.min.js +2 -2
  138. package/dist/__.js +2 -2
  139. package/dist/__.min.js +2 -2
  140. package/dist/__.min.mjs +2 -2
  141. package/dist/__.mjs +2 -2
  142. package/dist/all.es.js +173 -92
  143. package/dist/all.es.min.js +3 -3
  144. package/dist/all.js +173 -92
  145. package/dist/all.min.js +3 -3
  146. package/dist/all.min.mjs +3 -3
  147. package/dist/all.mjs +173 -92
  148. package/dist/always.es.js +2 -2
  149. package/dist/always.es.min.js +2 -2
  150. package/dist/always.js +2 -2
  151. package/dist/always.min.js +2 -2
  152. package/dist/always.min.mjs +2 -2
  153. package/dist/always.mjs +2 -2
  154. package/dist/and.es.js +101 -32
  155. package/dist/and.es.min.js +3 -3
  156. package/dist/and.js +101 -32
  157. package/dist/and.min.js +3 -3
  158. package/dist/and.min.mjs +3 -3
  159. package/dist/and.mjs +101 -32
  160. package/dist/assign.es.js +37 -10
  161. package/dist/assign.es.min.js +3 -3
  162. package/dist/assign.js +37 -10
  163. package/dist/assign.min.js +3 -3
  164. package/dist/assign.min.mjs +3 -3
  165. package/dist/assign.mjs +37 -10
  166. package/dist/compose.es.js +71 -0
  167. package/dist/compose.es.min.js +7 -0
  168. package/dist/compose.js +78 -0
  169. package/dist/compose.min.js +8 -0
  170. package/dist/compose.min.mjs +7 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.min.mjs +2 -2
  177. package/dist/curry.mjs +2 -2
  178. package/dist/eq.es.js +172 -49
  179. package/dist/eq.es.min.js +3 -3
  180. package/dist/eq.js +172 -49
  181. package/dist/eq.min.js +3 -3
  182. package/dist/eq.min.mjs +3 -3
  183. package/dist/eq.mjs +172 -49
  184. package/dist/every.es.js +194 -0
  185. package/dist/every.es.min.js +7 -0
  186. package/dist/every.js +201 -0
  187. package/dist/every.min.js +8 -0
  188. package/dist/every.min.mjs +7 -0
  189. package/dist/every.mjs +194 -0
  190. package/dist/filter.es.js +14 -108
  191. package/dist/filter.es.min.js +3 -3
  192. package/dist/filter.js +14 -108
  193. package/dist/filter.min.js +3 -3
  194. package/dist/filter.min.mjs +3 -3
  195. package/dist/filter.mjs +14 -108
  196. package/dist/flatMap.es.js +27 -214
  197. package/dist/flatMap.es.min.js +3 -3
  198. package/dist/flatMap.js +27 -214
  199. package/dist/flatMap.min.js +3 -3
  200. package/dist/flatMap.min.mjs +3 -3
  201. package/dist/flatMap.mjs +27 -214
  202. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  203. package/dist/forEach.es.min.js +7 -0
  204. package/dist/{x/forEach.js → forEach.js} +52 -70
  205. package/dist/forEach.min.js +8 -0
  206. package/dist/forEach.min.mjs +7 -0
  207. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  208. package/dist/get.es.js +60 -5
  209. package/dist/get.es.min.js +3 -3
  210. package/dist/get.js +60 -5
  211. package/dist/get.min.js +3 -3
  212. package/dist/get.min.mjs +3 -3
  213. package/dist/get.mjs +60 -5
  214. package/dist/gt.es.js +171 -48
  215. package/dist/gt.es.min.js +3 -3
  216. package/dist/gt.js +171 -48
  217. package/dist/gt.min.js +3 -3
  218. package/dist/gt.min.mjs +3 -3
  219. package/dist/gt.mjs +171 -48
  220. package/dist/gte.es.js +171 -48
  221. package/dist/gte.es.min.js +3 -3
  222. package/dist/gte.js +171 -48
  223. package/dist/gte.min.js +3 -3
  224. package/dist/gte.min.mjs +3 -3
  225. package/dist/gte.mjs +171 -48
  226. package/dist/lt.es.js +171 -48
  227. package/dist/lt.es.min.js +3 -3
  228. package/dist/lt.js +171 -48
  229. package/dist/lt.min.js +3 -3
  230. package/dist/lt.min.mjs +3 -3
  231. package/dist/lt.mjs +171 -48
  232. package/dist/lte.es.js +171 -48
  233. package/dist/lte.es.min.js +3 -3
  234. package/dist/lte.js +171 -48
  235. package/dist/lte.min.js +3 -3
  236. package/dist/lte.min.mjs +3 -3
  237. package/dist/lte.mjs +171 -48
  238. package/dist/map.es.js +12 -101
  239. package/dist/map.es.min.js +3 -3
  240. package/dist/map.js +12 -101
  241. package/dist/map.min.js +3 -3
  242. package/dist/map.min.mjs +3 -3
  243. package/dist/map.mjs +12 -101
  244. package/dist/not.es.js +75 -14
  245. package/dist/not.es.min.js +3 -3
  246. package/dist/not.js +75 -14
  247. package/dist/not.min.js +3 -3
  248. package/dist/not.min.mjs +3 -3
  249. package/dist/not.mjs +75 -14
  250. package/dist/omit.es.js +7 -2
  251. package/dist/omit.es.min.js +3 -3
  252. package/dist/omit.js +7 -2
  253. package/dist/omit.min.js +3 -3
  254. package/dist/omit.min.mjs +3 -3
  255. package/dist/omit.mjs +7 -2
  256. package/dist/or.es.js +99 -31
  257. package/dist/or.es.min.js +3 -3
  258. package/dist/or.js +99 -31
  259. package/dist/or.min.js +3 -3
  260. package/dist/or.min.mjs +3 -3
  261. package/dist/or.mjs +99 -31
  262. package/dist/pick.es.js +8 -3
  263. package/dist/pick.es.min.js +3 -3
  264. package/dist/pick.js +8 -3
  265. package/dist/pick.min.js +3 -3
  266. package/dist/pick.min.mjs +3 -3
  267. package/dist/pick.mjs +8 -3
  268. package/dist/pipe.es.js +42 -46
  269. package/dist/pipe.es.min.js +3 -3
  270. package/dist/pipe.js +42 -46
  271. package/dist/pipe.min.js +3 -3
  272. package/dist/pipe.min.mjs +3 -3
  273. package/dist/pipe.mjs +42 -46
  274. package/dist/reduce.es.js +52 -94
  275. package/dist/reduce.es.min.js +3 -3
  276. package/dist/reduce.js +52 -94
  277. package/dist/reduce.min.js +3 -3
  278. package/dist/reduce.min.mjs +3 -3
  279. package/dist/reduce.mjs +52 -94
  280. package/dist/rubico.es.js +730 -869
  281. package/dist/rubico.es.min.js +3 -3
  282. package/dist/rubico.js +730 -869
  283. package/dist/rubico.min.js +3 -3
  284. package/dist/rubico.min.mjs +3 -3
  285. package/dist/rubico.mjs +730 -869
  286. package/dist/set.es.js +18 -3
  287. package/dist/set.es.min.js +3 -3
  288. package/dist/set.js +18 -3
  289. package/dist/set.min.js +3 -3
  290. package/dist/set.min.mjs +3 -3
  291. package/dist/set.mjs +18 -3
  292. package/dist/{any.js → some.es.js} +64 -54
  293. package/dist/some.es.min.js +7 -0
  294. package/dist/{any.mjs → some.js} +72 -48
  295. package/dist/some.min.js +8 -0
  296. package/dist/some.min.mjs +7 -0
  297. package/dist/{any.es.js → some.mjs} +65 -48
  298. package/dist/switchCase.es.js +55 -5
  299. package/dist/switchCase.es.min.js +3 -3
  300. package/dist/switchCase.js +55 -5
  301. package/dist/switchCase.min.js +3 -3
  302. package/dist/switchCase.min.mjs +3 -3
  303. package/dist/switchCase.mjs +55 -5
  304. package/dist/tap.es.js +2 -9
  305. package/dist/tap.es.min.js +3 -3
  306. package/dist/tap.js +2 -9
  307. package/dist/tap.min.js +3 -3
  308. package/dist/tap.min.mjs +3 -3
  309. package/dist/tap.mjs +2 -9
  310. package/dist/thunkify.es.js +45 -2
  311. package/dist/thunkify.es.min.js +3 -3
  312. package/dist/thunkify.js +45 -2
  313. package/dist/thunkify.min.js +3 -3
  314. package/dist/thunkify.min.mjs +3 -3
  315. package/dist/thunkify.mjs +45 -2
  316. package/dist/transform.es.js +35 -71
  317. package/dist/transform.es.min.js +3 -3
  318. package/dist/transform.js +35 -71
  319. package/dist/transform.min.js +3 -3
  320. package/dist/transform.min.mjs +3 -3
  321. package/dist/transform.mjs +35 -71
  322. package/dist/tryCatch.es.js +33 -17
  323. package/dist/tryCatch.es.min.js +3 -3
  324. package/dist/tryCatch.js +33 -17
  325. package/dist/tryCatch.min.js +3 -3
  326. package/dist/tryCatch.min.mjs +3 -3
  327. package/dist/tryCatch.mjs +33 -17
  328. package/dist/x/append.es.js +2 -2
  329. package/dist/x/append.es.min.js +2 -2
  330. package/dist/x/append.js +2 -2
  331. package/dist/x/append.min.js +2 -2
  332. package/dist/x/append.min.mjs +2 -2
  333. package/dist/x/append.mjs +2 -2
  334. package/dist/x/callProp.es.js +2 -2
  335. package/dist/x/callProp.es.min.js +2 -2
  336. package/dist/x/callProp.js +2 -2
  337. package/dist/x/callProp.min.js +2 -2
  338. package/dist/x/callProp.min.mjs +2 -2
  339. package/dist/x/callProp.mjs +2 -2
  340. package/dist/x/defaultsDeep.es.js +2 -2
  341. package/dist/x/defaultsDeep.es.min.js +2 -2
  342. package/dist/x/defaultsDeep.js +2 -2
  343. package/dist/x/defaultsDeep.min.js +2 -2
  344. package/dist/x/defaultsDeep.min.mjs +2 -2
  345. package/dist/x/defaultsDeep.mjs +2 -2
  346. package/dist/x/differenceWith.es.js +7 -7
  347. package/dist/x/differenceWith.es.min.js +3 -3
  348. package/dist/x/differenceWith.js +7 -7
  349. package/dist/x/differenceWith.min.js +2 -2
  350. package/dist/x/differenceWith.min.mjs +3 -3
  351. package/dist/x/differenceWith.mjs +7 -7
  352. package/dist/x/filterOut.es.js +60 -117
  353. package/dist/x/filterOut.es.min.js +3 -3
  354. package/dist/x/filterOut.js +60 -117
  355. package/dist/x/filterOut.min.js +3 -3
  356. package/dist/x/filterOut.min.mjs +3 -3
  357. package/dist/x/filterOut.mjs +60 -117
  358. package/dist/x/find.es.js +2 -2
  359. package/dist/x/find.es.min.js +2 -2
  360. package/dist/x/find.js +2 -2
  361. package/dist/x/find.min.js +2 -2
  362. package/dist/x/find.min.mjs +2 -2
  363. package/dist/x/find.mjs +2 -2
  364. package/dist/x/findIndex.es.js +2 -2
  365. package/dist/x/findIndex.es.min.js +2 -2
  366. package/dist/x/findIndex.js +2 -2
  367. package/dist/x/findIndex.min.js +2 -2
  368. package/dist/x/findIndex.min.mjs +2 -2
  369. package/dist/x/findIndex.mjs +2 -2
  370. package/dist/x/first.es.js +2 -2
  371. package/dist/x/first.es.min.js +2 -2
  372. package/dist/x/first.js +2 -2
  373. package/dist/x/first.min.js +2 -2
  374. package/dist/x/first.min.mjs +2 -2
  375. package/dist/x/first.mjs +2 -2
  376. package/dist/x/flatten.es.js +20 -207
  377. package/dist/x/flatten.es.min.js +3 -3
  378. package/dist/x/flatten.js +20 -207
  379. package/dist/x/flatten.min.js +3 -3
  380. package/dist/x/flatten.min.mjs +3 -3
  381. package/dist/x/flatten.mjs +20 -207
  382. package/dist/x/groupBy.es.js +52 -94
  383. package/dist/x/groupBy.es.min.js +3 -3
  384. package/dist/x/groupBy.js +52 -94
  385. package/dist/x/groupBy.min.js +3 -3
  386. package/dist/x/groupBy.min.mjs +3 -3
  387. package/dist/x/groupBy.mjs +52 -94
  388. package/dist/x/has.es.js +2 -2
  389. package/dist/x/has.es.min.js +2 -2
  390. package/dist/x/has.js +2 -2
  391. package/dist/x/has.min.js +2 -2
  392. package/dist/x/has.min.mjs +2 -2
  393. package/dist/x/has.mjs +2 -2
  394. package/dist/x/identity.es.js +2 -2
  395. package/dist/x/identity.es.min.js +2 -2
  396. package/dist/x/identity.js +2 -2
  397. package/dist/x/identity.min.js +2 -2
  398. package/dist/x/identity.min.mjs +2 -2
  399. package/dist/x/identity.mjs +2 -2
  400. package/dist/x/includes.es.js +2 -2
  401. package/dist/x/includes.es.min.js +2 -2
  402. package/dist/x/includes.js +2 -2
  403. package/dist/x/includes.min.js +2 -2
  404. package/dist/x/includes.min.mjs +2 -2
  405. package/dist/x/includes.mjs +2 -2
  406. package/dist/x/isDeepEqual.es.js +2 -2
  407. package/dist/x/isDeepEqual.es.min.js +2 -2
  408. package/dist/x/isDeepEqual.js +2 -2
  409. package/dist/x/isDeepEqual.min.js +2 -2
  410. package/dist/x/isDeepEqual.min.mjs +2 -2
  411. package/dist/x/isDeepEqual.mjs +2 -2
  412. package/dist/x/isEmpty.es.js +2 -2
  413. package/dist/x/isEmpty.es.min.js +2 -2
  414. package/dist/x/isEmpty.js +2 -2
  415. package/dist/x/isEmpty.min.js +2 -2
  416. package/dist/x/isEmpty.min.mjs +2 -2
  417. package/dist/x/isEmpty.mjs +2 -2
  418. package/dist/x/isEqual.es.js +2 -2
  419. package/dist/x/isEqual.es.min.js +2 -2
  420. package/dist/x/isEqual.js +2 -2
  421. package/dist/x/isEqual.min.js +2 -2
  422. package/dist/x/isEqual.min.mjs +2 -2
  423. package/dist/x/isEqual.mjs +2 -2
  424. package/dist/x/isFunction.es.js +2 -2
  425. package/dist/x/isFunction.es.min.js +2 -2
  426. package/dist/x/isFunction.js +2 -2
  427. package/dist/x/isFunction.min.js +2 -2
  428. package/dist/x/isFunction.min.mjs +2 -2
  429. package/dist/x/isFunction.mjs +2 -2
  430. package/dist/x/isIn.es.js +2 -2
  431. package/dist/x/isIn.es.min.js +2 -2
  432. package/dist/x/isIn.js +2 -2
  433. package/dist/x/isIn.min.js +2 -2
  434. package/dist/x/isIn.min.mjs +2 -2
  435. package/dist/x/isIn.mjs +2 -2
  436. package/dist/x/isObject.es.js +2 -2
  437. package/dist/x/isObject.es.min.js +2 -2
  438. package/dist/x/isObject.js +2 -2
  439. package/dist/x/isObject.min.js +2 -2
  440. package/dist/x/isObject.min.mjs +2 -2
  441. package/dist/x/isObject.mjs +2 -2
  442. package/dist/x/isString.es.js +2 -2
  443. package/dist/x/isString.es.min.js +2 -2
  444. package/dist/x/isString.js +2 -2
  445. package/dist/x/isString.min.js +2 -2
  446. package/dist/x/isString.min.mjs +2 -2
  447. package/dist/x/isString.mjs +2 -2
  448. package/dist/x/keys.es.js +2 -2
  449. package/dist/x/keys.es.min.js +2 -2
  450. package/dist/x/keys.js +2 -2
  451. package/dist/x/keys.min.js +2 -2
  452. package/dist/x/keys.min.mjs +2 -2
  453. package/dist/x/keys.mjs +2 -2
  454. package/dist/x/last.es.js +2 -2
  455. package/dist/x/last.es.min.js +2 -2
  456. package/dist/x/last.js +2 -2
  457. package/dist/x/last.min.js +2 -2
  458. package/dist/x/last.min.mjs +2 -2
  459. package/dist/x/last.mjs +2 -2
  460. package/dist/x/maxBy.es.js +59 -6
  461. package/dist/x/maxBy.es.min.js +3 -3
  462. package/dist/x/maxBy.js +59 -6
  463. package/dist/x/maxBy.min.js +3 -3
  464. package/dist/x/maxBy.min.mjs +3 -3
  465. package/dist/x/maxBy.mjs +59 -6
  466. package/dist/x/noop.es.js +2 -2
  467. package/dist/x/noop.es.min.js +2 -2
  468. package/dist/x/noop.js +2 -2
  469. package/dist/x/noop.min.js +2 -2
  470. package/dist/x/noop.min.mjs +2 -2
  471. package/dist/x/noop.mjs +2 -2
  472. package/dist/x/pluck.es.js +32 -103
  473. package/dist/x/pluck.es.min.js +3 -3
  474. package/dist/x/pluck.js +32 -103
  475. package/dist/x/pluck.min.js +3 -3
  476. package/dist/x/pluck.min.mjs +3 -3
  477. package/dist/x/pluck.mjs +32 -103
  478. package/dist/x/prepend.es.js +2 -2
  479. package/dist/x/prepend.es.min.js +2 -2
  480. package/dist/x/prepend.js +2 -2
  481. package/dist/x/prepend.min.js +2 -2
  482. package/dist/x/prepend.min.mjs +2 -2
  483. package/dist/x/prepend.mjs +2 -2
  484. package/dist/x/size.es.js +2 -2
  485. package/dist/x/size.es.min.js +2 -2
  486. package/dist/x/size.js +2 -2
  487. package/dist/x/size.min.js +2 -2
  488. package/dist/x/size.min.mjs +2 -2
  489. package/dist/x/size.mjs +2 -2
  490. package/dist/x/trace.es.js +2 -9
  491. package/dist/x/trace.es.min.js +3 -3
  492. package/dist/x/trace.js +2 -9
  493. package/dist/x/trace.min.js +3 -3
  494. package/dist/x/trace.min.mjs +3 -3
  495. package/dist/x/trace.mjs +2 -9
  496. package/dist/x/unionWith.es.js +2 -2
  497. package/dist/x/unionWith.es.min.js +2 -2
  498. package/dist/x/unionWith.js +2 -2
  499. package/dist/x/unionWith.min.js +2 -2
  500. package/dist/x/unionWith.min.mjs +2 -2
  501. package/dist/x/unionWith.mjs +2 -2
  502. package/dist/x/uniq.es.js +2 -2
  503. package/dist/x/uniq.es.min.js +2 -2
  504. package/dist/x/uniq.js +2 -2
  505. package/dist/x/uniq.min.js +2 -2
  506. package/dist/x/uniq.min.mjs +2 -2
  507. package/dist/x/uniq.mjs +2 -2
  508. package/dist/x/unless.es.js +2 -2
  509. package/dist/x/unless.es.min.js +2 -2
  510. package/dist/x/unless.js +2 -2
  511. package/dist/x/unless.min.js +2 -2
  512. package/dist/x/unless.min.mjs +2 -2
  513. package/dist/x/unless.mjs +2 -2
  514. package/dist/x/values.es.js +2 -2
  515. package/dist/x/values.es.min.js +2 -2
  516. package/dist/x/values.js +2 -2
  517. package/dist/x/values.min.js +2 -2
  518. package/dist/x/values.min.mjs +2 -2
  519. package/dist/x/values.mjs +2 -2
  520. package/dist/x/when.es.js +2 -2
  521. package/dist/x/when.es.min.js +2 -2
  522. package/dist/x/when.js +2 -2
  523. package/dist/x/when.min.js +2 -2
  524. package/dist/x/when.min.mjs +2 -2
  525. package/dist/x/when.mjs +2 -2
  526. package/dist-test.js +9 -2042
  527. package/eq.js +21 -63
  528. package/es.js +730 -869
  529. package/every.js +94 -0
  530. package/filter.js +23 -91
  531. package/flatMap.js +75 -70
  532. package/forEach.js +82 -0
  533. package/get.js +23 -6
  534. package/global.js +6 -4
  535. package/gt.js +15 -58
  536. package/gte.js +14 -57
  537. package/index.js +730 -869
  538. package/lt.js +17 -60
  539. package/lte.js +14 -57
  540. package/map.js +9 -94
  541. package/memory-usage/reduce.js +2 -2
  542. package/not.js +27 -45
  543. package/omit.js +4 -0
  544. package/or.js +50 -33
  545. package/package.json +7 -7
  546. package/pick.js +5 -1
  547. package/pipe.js +13 -50
  548. package/reduce.js +42 -51
  549. package/rubico.js +10 -8
  550. package/set.js +43 -10
  551. package/some.js +105 -0
  552. package/switchCase.js +13 -3
  553. package/tap.js +0 -24
  554. package/test.js +847 -1096
  555. package/thunkify.js +9 -0
  556. package/transform.js +31 -16
  557. package/tryCatch.js +19 -15
  558. package/x/differenceWith.js +3 -3
  559. package/x/filterOut.test.js +6 -6
  560. package/x/flatten.js +1 -1
  561. package/x/flatten.test.js +0 -8
  562. package/x/index.js +0 -2
  563. package/x/pluck.js +18 -27
  564. package/x/pluck.test.js +3 -7
  565. package/x/timeInLoop.js +16 -25
  566. package/x/timeInLoop.test.js +8 -4
  567. package/any.js +0 -82
  568. package/dist/any.es.min.js +0 -7
  569. package/dist/any.min.js +0 -8
  570. package/dist/any.min.mjs +0 -7
  571. package/dist/fork.es.js +0 -159
  572. package/dist/fork.es.min.js +0 -7
  573. package/dist/fork.js +0 -166
  574. package/dist/fork.min.js +0 -8
  575. package/dist/fork.min.mjs +0 -7
  576. package/dist/fork.mjs +0 -159
  577. package/dist/x/forEach.es.min.js +0 -7
  578. package/dist/x/forEach.min.js +0 -8
  579. package/dist/x/forEach.min.mjs +0 -7
  580. package/fork.js +0 -101
  581. package/x/forEach.js +0 -93
  582. package/x/forEach.test.js +0 -218
  583. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  584. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  586. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -1,10 +1,34 @@
1
1
  /**
2
- * rubico v1.9.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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.7
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)) {