rubico 2.4.2 → 2.6.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 (375) hide show
  1. package/README.md +3 -0
  2. package/_internal/arrayMapPool.js +11 -19
  3. package/_internal/mapMapPool.js +80 -0
  4. package/_internal/mapMapSeries.js +62 -0
  5. package/_internal/objectForEachSeries.js +6 -4
  6. package/_internal/objectMapPool.js +77 -0
  7. package/_internal/objectMapSeries.js +62 -0
  8. package/_internal/setAdd.js +14 -0
  9. package/_internal/setMapPool.js +79 -0
  10. package/_internal/setMapSeries.js +61 -0
  11. package/_internal/stringMap.js +1 -1
  12. package/_internal/stringMapPool.js +22 -0
  13. package/_internal/stringMapSeries.js +31 -0
  14. package/all.js +11 -1
  15. package/and.js +9 -0
  16. package/assign.js +14 -1
  17. package/compose.js +8 -0
  18. package/dist/Transducer.es.js +1 -1
  19. package/dist/Transducer.es.min.js +1 -1
  20. package/dist/Transducer.js +1 -1
  21. package/dist/Transducer.min.js +1 -1
  22. package/dist/Transducer.mjs +1 -1
  23. package/dist/__.es.js +1 -1
  24. package/dist/__.es.min.js +1 -1
  25. package/dist/__.js +1 -1
  26. package/dist/__.min.js +1 -1
  27. package/dist/__.mjs +1 -1
  28. package/dist/all.es.js +1 -1
  29. package/dist/all.es.min.js +1 -1
  30. package/dist/all.js +1 -1
  31. package/dist/all.min.js +1 -1
  32. package/dist/all.mjs +1 -1
  33. package/dist/always.es.js +1 -1
  34. package/dist/always.es.min.js +1 -1
  35. package/dist/always.js +1 -1
  36. package/dist/always.min.js +1 -1
  37. package/dist/always.mjs +1 -1
  38. package/dist/and.es.js +1 -1
  39. package/dist/and.es.min.js +1 -1
  40. package/dist/and.js +1 -1
  41. package/dist/and.min.js +1 -1
  42. package/dist/and.mjs +1 -1
  43. package/dist/assign.es.js +1 -1
  44. package/dist/assign.es.min.js +1 -1
  45. package/dist/assign.js +1 -1
  46. package/dist/assign.min.js +1 -1
  47. package/dist/assign.mjs +1 -1
  48. package/dist/compose.es.js +1 -1
  49. package/dist/compose.es.min.js +1 -1
  50. package/dist/compose.js +1 -1
  51. package/dist/compose.min.js +1 -1
  52. package/dist/compose.mjs +1 -1
  53. package/dist/curry.es.js +1 -1
  54. package/dist/curry.es.min.js +1 -1
  55. package/dist/curry.js +1 -1
  56. package/dist/curry.min.js +1 -1
  57. package/dist/curry.mjs +1 -1
  58. package/dist/eq.es.js +1 -1
  59. package/dist/eq.es.min.js +1 -1
  60. package/dist/eq.js +1 -1
  61. package/dist/eq.min.js +1 -1
  62. package/dist/eq.mjs +1 -1
  63. package/dist/every.es.js +1 -1
  64. package/dist/every.es.min.js +1 -1
  65. package/dist/every.js +1 -1
  66. package/dist/every.min.js +1 -1
  67. package/dist/every.mjs +1 -1
  68. package/dist/filter.es.js +1 -1
  69. package/dist/filter.es.min.js +1 -1
  70. package/dist/filter.js +1 -1
  71. package/dist/filter.min.js +1 -1
  72. package/dist/filter.mjs +1 -1
  73. package/dist/flatMap.es.js +1 -1
  74. package/dist/flatMap.es.min.js +1 -1
  75. package/dist/flatMap.js +1 -1
  76. package/dist/flatMap.min.js +1 -1
  77. package/dist/flatMap.mjs +1 -1
  78. package/dist/forEach.es.js +11 -8
  79. package/dist/forEach.es.min.js +2 -2
  80. package/dist/forEach.js +11 -8
  81. package/dist/forEach.min.js +2 -2
  82. package/dist/forEach.mjs +11 -8
  83. package/dist/get.es.js +1 -1
  84. package/dist/get.es.min.js +1 -1
  85. package/dist/get.js +1 -1
  86. package/dist/get.min.js +1 -1
  87. package/dist/get.mjs +1 -1
  88. package/dist/gt.es.js +1 -1
  89. package/dist/gt.es.min.js +1 -1
  90. package/dist/gt.js +1 -1
  91. package/dist/gt.min.js +1 -1
  92. package/dist/gt.mjs +1 -1
  93. package/dist/gte.es.js +1 -1
  94. package/dist/gte.es.min.js +1 -1
  95. package/dist/gte.js +1 -1
  96. package/dist/gte.min.js +1 -1
  97. package/dist/gte.mjs +1 -1
  98. package/dist/lt.es.js +1 -1
  99. package/dist/lt.es.min.js +1 -1
  100. package/dist/lt.js +1 -1
  101. package/dist/lt.min.js +1 -1
  102. package/dist/lt.mjs +1 -1
  103. package/dist/lte.es.js +1 -1
  104. package/dist/lte.es.min.js +1 -1
  105. package/dist/lte.js +1 -1
  106. package/dist/lte.min.js +1 -1
  107. package/dist/lte.mjs +1 -1
  108. package/dist/map.es.js +382 -51
  109. package/dist/map.es.min.js +2 -2
  110. package/dist/map.js +382 -51
  111. package/dist/map.min.js +2 -2
  112. package/dist/map.mjs +382 -51
  113. package/dist/not.es.js +1 -1
  114. package/dist/not.es.min.js +1 -1
  115. package/dist/not.js +1 -1
  116. package/dist/not.min.js +1 -1
  117. package/dist/not.mjs +1 -1
  118. package/dist/omit.es.js +1 -1
  119. package/dist/omit.es.min.js +1 -1
  120. package/dist/omit.js +1 -1
  121. package/dist/omit.min.js +1 -1
  122. package/dist/omit.mjs +1 -1
  123. package/dist/or.es.js +1 -1
  124. package/dist/or.es.min.js +1 -1
  125. package/dist/or.js +1 -1
  126. package/dist/or.min.js +1 -1
  127. package/dist/or.mjs +1 -1
  128. package/dist/pick.es.js +1 -1
  129. package/dist/pick.es.min.js +1 -1
  130. package/dist/pick.js +1 -1
  131. package/dist/pick.min.js +1 -1
  132. package/dist/pick.mjs +1 -1
  133. package/dist/pipe.es.js +1 -1
  134. package/dist/pipe.es.min.js +1 -1
  135. package/dist/pipe.js +1 -1
  136. package/dist/pipe.min.js +1 -1
  137. package/dist/pipe.mjs +1 -1
  138. package/dist/reduce.es.js +1 -1
  139. package/dist/reduce.es.min.js +1 -1
  140. package/dist/reduce.js +1 -1
  141. package/dist/reduce.min.js +1 -1
  142. package/dist/reduce.mjs +1 -1
  143. package/dist/rubico.es.js +362 -33
  144. package/dist/rubico.es.min.js +2 -2
  145. package/dist/rubico.global.js +362 -33
  146. package/dist/rubico.global.min.js +2 -2
  147. package/dist/rubico.js +362 -33
  148. package/dist/rubico.min.js +2 -2
  149. package/dist/rubico.mjs +362 -33
  150. package/dist/set.es.js +1 -1
  151. package/dist/set.es.min.js +1 -1
  152. package/dist/set.js +1 -1
  153. package/dist/set.min.js +1 -1
  154. package/dist/set.mjs +1 -1
  155. package/dist/some.es.js +1 -1
  156. package/dist/some.es.min.js +1 -1
  157. package/dist/some.js +1 -1
  158. package/dist/some.min.js +1 -1
  159. package/dist/some.mjs +1 -1
  160. package/dist/switchCase.es.js +1 -1
  161. package/dist/switchCase.es.min.js +1 -1
  162. package/dist/switchCase.js +1 -1
  163. package/dist/switchCase.min.js +1 -1
  164. package/dist/switchCase.mjs +1 -1
  165. package/dist/tap.es.js +38 -1
  166. package/dist/tap.es.min.js +2 -2
  167. package/dist/tap.js +38 -1
  168. package/dist/tap.min.js +2 -2
  169. package/dist/tap.mjs +38 -1
  170. package/dist/thunkify.es.js +1 -1
  171. package/dist/thunkify.es.min.js +1 -1
  172. package/dist/thunkify.js +1 -1
  173. package/dist/thunkify.min.js +1 -1
  174. package/dist/thunkify.mjs +1 -1
  175. package/dist/transform.es.js +1 -1
  176. package/dist/transform.es.min.js +1 -1
  177. package/dist/transform.js +1 -1
  178. package/dist/transform.min.js +1 -1
  179. package/dist/transform.mjs +1 -1
  180. package/dist/tryCatch.es.js +1 -1
  181. package/dist/tryCatch.es.min.js +1 -1
  182. package/dist/tryCatch.js +1 -1
  183. package/dist/tryCatch.min.js +1 -1
  184. package/dist/tryCatch.mjs +1 -1
  185. package/dist/x/append.es.js +1 -1
  186. package/dist/x/append.es.min.js +1 -1
  187. package/dist/x/append.js +1 -1
  188. package/dist/x/append.min.js +1 -1
  189. package/dist/x/append.mjs +1 -1
  190. package/dist/x/callProp.es.js +1 -1
  191. package/dist/x/callProp.es.min.js +1 -1
  192. package/dist/x/callProp.js +1 -1
  193. package/dist/x/callProp.min.js +1 -1
  194. package/dist/x/callProp.mjs +1 -1
  195. package/dist/x/defaultsDeep.es.js +1 -1
  196. package/dist/x/defaultsDeep.es.min.js +1 -1
  197. package/dist/x/defaultsDeep.js +1 -1
  198. package/dist/x/defaultsDeep.min.js +1 -1
  199. package/dist/x/defaultsDeep.mjs +1 -1
  200. package/dist/x/differenceWith.es.js +1 -1
  201. package/dist/x/differenceWith.es.min.js +1 -1
  202. package/dist/x/differenceWith.js +1 -1
  203. package/dist/x/differenceWith.min.js +1 -1
  204. package/dist/x/differenceWith.mjs +1 -1
  205. package/dist/x/filterOut.es.js +1 -1
  206. package/dist/x/filterOut.es.min.js +1 -1
  207. package/dist/x/filterOut.js +1 -1
  208. package/dist/x/filterOut.min.js +1 -1
  209. package/dist/x/filterOut.mjs +1 -1
  210. package/dist/x/find.es.js +1 -1
  211. package/dist/x/find.es.min.js +1 -1
  212. package/dist/x/find.js +1 -1
  213. package/dist/x/find.min.js +1 -1
  214. package/dist/x/find.mjs +1 -1
  215. package/dist/x/findIndex.es.js +1 -1
  216. package/dist/x/findIndex.es.min.js +1 -1
  217. package/dist/x/findIndex.js +1 -1
  218. package/dist/x/findIndex.min.js +1 -1
  219. package/dist/x/findIndex.mjs +1 -1
  220. package/dist/x/first.es.js +1 -1
  221. package/dist/x/first.es.min.js +1 -1
  222. package/dist/x/first.js +1 -1
  223. package/dist/x/first.min.js +1 -1
  224. package/dist/x/first.mjs +1 -1
  225. package/dist/x/flatten.es.js +1 -1
  226. package/dist/x/flatten.es.min.js +1 -1
  227. package/dist/x/flatten.js +1 -1
  228. package/dist/x/flatten.min.js +1 -1
  229. package/dist/x/flatten.mjs +1 -1
  230. package/dist/x/groupBy.es.js +1 -1
  231. package/dist/x/groupBy.es.min.js +1 -1
  232. package/dist/x/groupBy.js +1 -1
  233. package/dist/x/groupBy.min.js +1 -1
  234. package/dist/x/groupBy.mjs +1 -1
  235. package/dist/x/has.es.js +1 -1
  236. package/dist/x/has.es.min.js +1 -1
  237. package/dist/x/has.js +1 -1
  238. package/dist/x/has.min.js +1 -1
  239. package/dist/x/has.mjs +1 -1
  240. package/dist/x/identity.es.js +1 -1
  241. package/dist/x/identity.es.min.js +1 -1
  242. package/dist/x/identity.js +1 -1
  243. package/dist/x/identity.min.js +1 -1
  244. package/dist/x/identity.mjs +1 -1
  245. package/dist/x/includes.es.js +1 -1
  246. package/dist/x/includes.es.min.js +1 -1
  247. package/dist/x/includes.js +1 -1
  248. package/dist/x/includes.min.js +1 -1
  249. package/dist/x/includes.mjs +1 -1
  250. package/dist/x/isDeepEqual.es.js +1 -1
  251. package/dist/x/isDeepEqual.es.min.js +1 -1
  252. package/dist/x/isDeepEqual.js +1 -1
  253. package/dist/x/isDeepEqual.min.js +1 -1
  254. package/dist/x/isDeepEqual.mjs +1 -1
  255. package/dist/x/isEmpty.es.js +1 -1
  256. package/dist/x/isEmpty.es.min.js +1 -1
  257. package/dist/x/isEmpty.js +1 -1
  258. package/dist/x/isEmpty.min.js +1 -1
  259. package/dist/x/isEmpty.mjs +1 -1
  260. package/dist/x/isEqual.es.js +1 -1
  261. package/dist/x/isEqual.es.min.js +1 -1
  262. package/dist/x/isEqual.js +1 -1
  263. package/dist/x/isEqual.min.js +1 -1
  264. package/dist/x/isEqual.mjs +1 -1
  265. package/dist/x/isFunction.es.js +1 -1
  266. package/dist/x/isFunction.es.min.js +1 -1
  267. package/dist/x/isFunction.js +1 -1
  268. package/dist/x/isFunction.min.js +1 -1
  269. package/dist/x/isFunction.mjs +1 -1
  270. package/dist/x/isIn.es.js +1 -1
  271. package/dist/x/isIn.es.min.js +1 -1
  272. package/dist/x/isIn.js +1 -1
  273. package/dist/x/isIn.min.js +1 -1
  274. package/dist/x/isIn.mjs +1 -1
  275. package/dist/x/isObject.es.js +1 -1
  276. package/dist/x/isObject.es.min.js +1 -1
  277. package/dist/x/isObject.js +1 -1
  278. package/dist/x/isObject.min.js +1 -1
  279. package/dist/x/isObject.mjs +1 -1
  280. package/dist/x/isString.es.js +1 -1
  281. package/dist/x/isString.es.min.js +1 -1
  282. package/dist/x/isString.js +1 -1
  283. package/dist/x/isString.min.js +1 -1
  284. package/dist/x/isString.mjs +1 -1
  285. package/dist/x/keys.es.js +1 -1
  286. package/dist/x/keys.es.min.js +1 -1
  287. package/dist/x/keys.js +1 -1
  288. package/dist/x/keys.min.js +1 -1
  289. package/dist/x/keys.mjs +1 -1
  290. package/dist/x/last.es.js +1 -1
  291. package/dist/x/last.es.min.js +1 -1
  292. package/dist/x/last.js +1 -1
  293. package/dist/x/last.min.js +1 -1
  294. package/dist/x/last.mjs +1 -1
  295. package/dist/x/maxBy.es.js +1 -1
  296. package/dist/x/maxBy.es.min.js +1 -1
  297. package/dist/x/maxBy.js +1 -1
  298. package/dist/x/maxBy.min.js +1 -1
  299. package/dist/x/maxBy.mjs +1 -1
  300. package/dist/x/noop.es.js +1 -1
  301. package/dist/x/noop.es.min.js +1 -1
  302. package/dist/x/noop.js +1 -1
  303. package/dist/x/noop.min.js +1 -1
  304. package/dist/x/noop.mjs +1 -1
  305. package/dist/x/pluck.es.js +382 -51
  306. package/dist/x/pluck.es.min.js +2 -2
  307. package/dist/x/pluck.js +382 -51
  308. package/dist/x/pluck.min.js +2 -2
  309. package/dist/x/pluck.mjs +382 -51
  310. package/dist/x/prepend.es.js +1 -1
  311. package/dist/x/prepend.es.min.js +1 -1
  312. package/dist/x/prepend.js +1 -1
  313. package/dist/x/prepend.min.js +1 -1
  314. package/dist/x/prepend.mjs +1 -1
  315. package/dist/x/size.es.js +1 -1
  316. package/dist/x/size.es.min.js +1 -1
  317. package/dist/x/size.js +1 -1
  318. package/dist/x/size.min.js +1 -1
  319. package/dist/x/size.mjs +1 -1
  320. package/dist/x/trace.es.js +38 -1
  321. package/dist/x/trace.es.min.js +2 -2
  322. package/dist/x/trace.js +38 -1
  323. package/dist/x/trace.min.js +2 -2
  324. package/dist/x/trace.mjs +38 -1
  325. package/dist/x/unionWith.es.js +1 -1
  326. package/dist/x/unionWith.es.min.js +1 -1
  327. package/dist/x/unionWith.js +1 -1
  328. package/dist/x/unionWith.min.js +1 -1
  329. package/dist/x/unionWith.mjs +1 -1
  330. package/dist/x/uniq.es.js +1 -1
  331. package/dist/x/uniq.es.min.js +1 -1
  332. package/dist/x/uniq.js +1 -1
  333. package/dist/x/uniq.min.js +1 -1
  334. package/dist/x/uniq.mjs +1 -1
  335. package/dist/x/unless.es.js +1 -1
  336. package/dist/x/unless.es.min.js +1 -1
  337. package/dist/x/unless.js +1 -1
  338. package/dist/x/unless.min.js +1 -1
  339. package/dist/x/unless.mjs +1 -1
  340. package/dist/x/values.es.js +1 -1
  341. package/dist/x/values.es.min.js +1 -1
  342. package/dist/x/values.js +1 -1
  343. package/dist/x/values.min.js +1 -1
  344. package/dist/x/values.mjs +1 -1
  345. package/dist/x/when.es.js +1 -1
  346. package/dist/x/when.es.min.js +1 -1
  347. package/dist/x/when.js +1 -1
  348. package/dist/x/when.min.js +1 -1
  349. package/dist/x/when.mjs +1 -1
  350. package/eq.js +6 -0
  351. package/es.js +362 -33
  352. package/every.js +6 -0
  353. package/filter.js +9 -0
  354. package/flatMap.js +7 -0
  355. package/forEach.js +22 -3
  356. package/get.js +6 -0
  357. package/gt.js +6 -0
  358. package/gte.js +6 -0
  359. package/index.js +362 -33
  360. package/lt.js +6 -0
  361. package/lte.js +6 -0
  362. package/map.js +172 -44
  363. package/not.js +8 -0
  364. package/omit.js +7 -0
  365. package/or.js +9 -0
  366. package/package.json +1 -1
  367. package/pick.js +7 -0
  368. package/pipe.js +8 -0
  369. package/reduce.js +8 -0
  370. package/set.js +6 -0
  371. package/some.js +6 -0
  372. package/switchCase.js +12 -0
  373. package/tap.js +11 -0
  374. package/transform.js +38 -10
  375. package/tryCatch.js +14 -0
package/dist/tap.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -19,6 +19,26 @@ const thunkConditional = (
19
19
 
20
20
  const __ = Symbol.for('placeholder')
21
21
 
22
+ // argument resolver for curry2
23
+ const curry2ResolveArg0 = (
24
+ baseFunc, arg1,
25
+ ) => function arg0Resolver(arg0) {
26
+ return baseFunc(arg0, arg1)
27
+ }
28
+
29
+ // argument resolver for curry2
30
+ const curry2ResolveArg1 = (
31
+ baseFunc, arg0,
32
+ ) => function arg1Resolver(arg1) {
33
+ return baseFunc(arg0, arg1)
34
+ }
35
+
36
+ const curry2 = function (baseFunc, arg0, arg1) {
37
+ return arg0 == __
38
+ ? curry2ResolveArg0(baseFunc, arg1)
39
+ : curry2ResolveArg1(baseFunc, arg0)
40
+ }
41
+
22
42
  // argument resolver for curry3
23
43
  const curry3ResolveArg0 = (
24
44
  baseFunc, arg1, arg2,
@@ -71,6 +91,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
71
91
  return curryArgs2ResolveArgs1(baseFunc, arg0)
72
92
  }
73
93
 
94
+ const areAnyValuesPromises = function (values) {
95
+ const length = values.length
96
+ let index = -1
97
+ while (++index < length) {
98
+ const value = values[index]
99
+ if (isPromise(value)) {
100
+ return true
101
+ }
102
+ }
103
+ return false
104
+ }
105
+
106
+ const promiseAll = Promise.all.bind(Promise)
107
+
74
108
  // _tap(args Array, func function) -> Promise|any
75
109
  const _tap = function (args, func) {
76
110
  const result = args[0],
@@ -83,6 +117,9 @@ const tap = function (...args) {
83
117
  if (args.length == 0) {
84
118
  return curryArgs2(_tap, __, func)
85
119
  }
120
+ if (areAnyValuesPromises(args)) {
121
+ return promiseAll(args).then(curry2(_tap, __, func))
122
+ }
86
123
  return _tap(args, func)
87
124
  }
88
125
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 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},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)},curryArgs2ResolveArgs0=(r,n,t)=>function(...t){return r(t,n)},curryArgs2ResolveArgs1=(r,n,t)=>function(...t){return r(n,t)},curryArgs2=function(r,n,t){return n==__?curryArgs2ResolveArgs0(r,t):curryArgs2ResolveArgs1(r,n)},_tap=function(r,n){const t=r[0],e=n(...r);return isPromise(e)?e.then(always(t)):t},tap=function(...r){const n=r.pop();return 0==r.length?curryArgs2(_tap,__,n):_tap(r,n)};tap.if=(r,n)=>function(...t){const e=r(...t);if(isPromise(e))return e.then(curry3(thunkConditional,__,thunkifyArgs(tap(n),t),always(t[0])));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"),curry2ResolveArg0=(r,n)=>function(e){return r(e,n)},curry2ResolveArg1=(r,n)=>function(e){return r(n,e)},curry2=function(r,n,e){return n==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,n)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},promiseAll=Promise.all.bind(Promise),_tap=function(r,n){const e=r[0],t=n(...r);return isPromise(t)?t.then(always(e)):e},tap=function(...r){const n=r.pop();return 0==r.length?curryArgs2(_tap,__,n):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_tap,__,n)):_tap(r,n)};tap.if=(r,n)=>function(...e){const t=r(...e);if(isPromise(t))return t.then(curry3(thunkConditional,__,thunkifyArgs(tap(n),e),always(e[0])));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,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -25,6 +25,26 @@ const thunkConditional = (
25
25
 
26
26
  const __ = Symbol.for('placeholder')
27
27
 
28
+ // argument resolver for curry2
29
+ const curry2ResolveArg0 = (
30
+ baseFunc, arg1,
31
+ ) => function arg0Resolver(arg0) {
32
+ return baseFunc(arg0, arg1)
33
+ }
34
+
35
+ // argument resolver for curry2
36
+ const curry2ResolveArg1 = (
37
+ baseFunc, arg0,
38
+ ) => function arg1Resolver(arg1) {
39
+ return baseFunc(arg0, arg1)
40
+ }
41
+
42
+ const curry2 = function (baseFunc, arg0, arg1) {
43
+ return arg0 == __
44
+ ? curry2ResolveArg0(baseFunc, arg1)
45
+ : curry2ResolveArg1(baseFunc, arg0)
46
+ }
47
+
28
48
  // argument resolver for curry3
29
49
  const curry3ResolveArg0 = (
30
50
  baseFunc, arg1, arg2,
@@ -77,6 +97,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
77
97
  return curryArgs2ResolveArgs1(baseFunc, arg0)
78
98
  }
79
99
 
100
+ const areAnyValuesPromises = function (values) {
101
+ const length = values.length
102
+ let index = -1
103
+ while (++index < length) {
104
+ const value = values[index]
105
+ if (isPromise(value)) {
106
+ return true
107
+ }
108
+ }
109
+ return false
110
+ }
111
+
112
+ const promiseAll = Promise.all.bind(Promise)
113
+
80
114
  // _tap(args Array, func function) -> Promise|any
81
115
  const _tap = function (args, func) {
82
116
  const result = args[0],
@@ -89,6 +123,9 @@ const tap = function (...args) {
89
123
  if (args.length == 0) {
90
124
  return curryArgs2(_tap, __, func)
91
125
  }
126
+ if (areAnyValuesPromises(args)) {
127
+ return promiseAll(args).then(curry2(_tap, __, func))
128
+ }
92
129
  return _tap(args, func)
93
130
  }
94
131
 
package/dist/tap.min.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 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=function(e,o){const r=e[0],u=o(...e);return n(u)?u.then(t(r)):r},u=function(...n){const t=n.pop();return 0==n.length?(e=r,f=t,(u=o)==o?((n,t)=>function(...e){return n(e,t)})(e,f):((n,t)=>function(...e){return n(t,e)})(e,u)):r(n,t);var e,u,f};return u.if=(r,f)=>function(...i){const c=r(...i);if(n(c))return c.then((l=e,s=o,h=((n,t)=>function(){return n(...t)})(u(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]},u}());
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},r=(n,t,r)=>n?t():r(),e=Symbol.for("placeholder"),o=Promise.all.bind(Promise),u=function(r,e){const o=r[0],u=e(...r);return n(u)?u.then(t(o)):o},i=function(...t){const r=t.pop();return 0==t.length?(i=u,c=r,(f=e)==e?((n,t)=>function(...r){return n(r,t)})(i,c):((n,t)=>function(...r){return n(t,r)})(i,f)):function(t){const r=t.length;let e=-1;for(;++e<r;){const r=t[e];if(n(r))return!0}return!1}(t)?o(t).then(function(n,t,r){return t==e?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)}(u,e,r)):u(t,r);var i,f,c};return i.if=(o,u)=>function(...f){const c=o(...f);if(n(c))return c.then((l=r,s=e,h=((n,t)=>function(){return n(...t)})(i(u),f),p=t(f[0]),s==e?((n,t,r)=>function(e){return n(e,t,r)})(l,h,p):h==e?((n,t,r)=>function(e){return n(t,e,r)})(l,s,p):((n,t,r)=>function(e){return n(t,r,e)})(l,s,h)));var l,s,h,p;if(c){const r=u(...f);if(n(r))return r.then(t(f[0]))}return f[0]},i}());
package/dist/tap.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -19,6 +19,26 @@ const thunkConditional = (
19
19
 
20
20
  const __ = Symbol.for('placeholder')
21
21
 
22
+ // argument resolver for curry2
23
+ const curry2ResolveArg0 = (
24
+ baseFunc, arg1,
25
+ ) => function arg0Resolver(arg0) {
26
+ return baseFunc(arg0, arg1)
27
+ }
28
+
29
+ // argument resolver for curry2
30
+ const curry2ResolveArg1 = (
31
+ baseFunc, arg0,
32
+ ) => function arg1Resolver(arg1) {
33
+ return baseFunc(arg0, arg1)
34
+ }
35
+
36
+ const curry2 = function (baseFunc, arg0, arg1) {
37
+ return arg0 == __
38
+ ? curry2ResolveArg0(baseFunc, arg1)
39
+ : curry2ResolveArg1(baseFunc, arg0)
40
+ }
41
+
22
42
  // argument resolver for curry3
23
43
  const curry3ResolveArg0 = (
24
44
  baseFunc, arg1, arg2,
@@ -71,6 +91,20 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
71
91
  return curryArgs2ResolveArgs1(baseFunc, arg0)
72
92
  }
73
93
 
94
+ const areAnyValuesPromises = function (values) {
95
+ const length = values.length
96
+ let index = -1
97
+ while (++index < length) {
98
+ const value = values[index]
99
+ if (isPromise(value)) {
100
+ return true
101
+ }
102
+ }
103
+ return false
104
+ }
105
+
106
+ const promiseAll = Promise.all.bind(Promise)
107
+
74
108
  // _tap(args Array, func function) -> Promise|any
75
109
  const _tap = function (args, func) {
76
110
  const result = args[0],
@@ -83,6 +117,9 @@ const tap = function (...args) {
83
117
  if (args.length == 0) {
84
118
  return curryArgs2(_tap, __, func)
85
119
  }
120
+ if (areAnyValuesPromises(args)) {
121
+ return promiseAll(args).then(curry2(_tap, __, func))
122
+ }
86
123
  return _tap(args, func)
87
124
  }
88
125
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/thunkify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/thunkify.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/transform.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/tryCatch.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/tryCatch.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/append.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/append.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/find.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/find.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/x/find.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.4.2
2
+ * rubico v2.6.0
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2024 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.