rubico 2.6.0 → 2.6.2

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