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/x/values.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.
package/dist/x/when.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.
@@ -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/x/when.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.
package/dist/x/when.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.
package/es.js 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
  }
@@ -146,32 +158,67 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
146
158
  return curryArgs2ResolveArgs1(baseFunc, arg0)
147
159
  }
148
160
 
149
- // _tap(args Array, func function) -> Promise|any
150
- const _tap = function (args, func) {
161
+ // argument resolver for curryArgs3
162
+ const curryArgs3ResolveArgs0 = (
163
+ baseFunc, arg1, arg2,
164
+ ) => function args0Resolver(...args) {
165
+ return baseFunc(args, arg1, arg2)
166
+ }
167
+
168
+ // argument resolver for curryArgs3
169
+ const curryArgs3ResolveArgs1 = (
170
+ baseFunc, arg0, arg2,
171
+ ) => function arg1Resolver(...args) {
172
+ return baseFunc(arg0, args, arg2)
173
+ }
174
+
175
+ // argument resolver for curryArgs3
176
+ const curryArgs3ResolveArgs2 = (
177
+ baseFunc, arg0, arg1,
178
+ ) => function arg2Resolver(...args) {
179
+ return baseFunc(arg0, arg1, args)
180
+ }
181
+
182
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
183
+ if (arg0 == __) {
184
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
185
+ }
186
+ if (arg1 == __) {
187
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
188
+ }
189
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
190
+ }
191
+
192
+ // _tap(args Array, f function) -> Promise|any
193
+ const _tap = function (args, f) {
151
194
  const result = args[0],
152
- call = func(...args)
195
+ call = f(...args)
153
196
  return isPromise(call) ? call.then(always(result)) : result
154
197
  }
155
198
 
156
199
  const tap = function (...args) {
157
- const func = args.pop()
200
+ const f = args.pop()
158
201
  if (args.length == 0) {
159
- return curryArgs2(_tap, __, func)
202
+ return curryArgs2(_tap, __, f)
160
203
  }
161
204
  if (areAnyValuesPromises(args)) {
162
- return promiseAll(args).then(curry2(_tap, __, func))
205
+ return promiseAll(args).then(curry2(_tap, __, f))
163
206
  }
164
- return _tap(args, func)
207
+ return _tap(args, f)
165
208
  }
166
209
 
167
- tap.if = (predicate, func) => function tappingIf(...args) {
168
- const predication = predicate(...args)
169
- if (isPromise(predication)) {
170
- return predication.then(curry3(
171
- thunkConditional, __, thunkifyArgs(tap(func), args), always(args[0])))
210
+ const _tapIf = function (predicate, f, args) {
211
+ const b = predicate(...args)
212
+ if (isPromise(b)) {
213
+ return b.then(curry3(
214
+ thunkConditional,
215
+ __,
216
+ thunkifyArgs(tap(f), args),
217
+ always(args[0]),
218
+ ))
172
219
  }
173
- if (predication) {
174
- const execution = func(...args)
220
+ if (b) {
221
+ const execution = f(...args)
175
222
  if (isPromise(execution)) {
176
223
  return execution.then(always(args[0]))
177
224
  }
@@ -179,14 +226,72 @@ tap.if = (predicate, func) => function tappingIf(...args) {
179
226
  return args[0]
180
227
  }
181
228
 
182
- const isArray = Array.isArray
229
+ tap.if = function (...args) {
230
+ if (args.length == 2) {
231
+ return curryArgs3(_tapIf, args[0], args[1], __)
232
+ }
233
+ const argsLength = args.length
234
+ const f = args[argsLength - 1]
235
+ const predicate = args[argsLength - 2]
236
+ const argValues = args.slice(0, -2)
237
+ if (areAnyValuesPromises(argValues)) {
238
+ return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
239
+ }
240
+ return _tapIf(predicate, f, args)
241
+ }
242
+
243
+ const areAllValuesNonfunctions = function (values) {
244
+ if (isArray(values)) {
245
+ const length = values.length
246
+ let index = -1
247
+ while (++index < length) {
248
+ if (typeof values[index] == 'function') {
249
+ return false
250
+ }
251
+ }
252
+ return true
253
+ }
254
+
255
+ for (const key in values) {
256
+ if (typeof values[key] == 'function') {
257
+ return false
258
+ }
259
+ }
260
+ return true
261
+ }
262
+
263
+ const promiseObjectAllExecutor = object => function executor(resolve) {
264
+ const result = {}
265
+ let numPromises = 0
266
+ for (const key in object) {
267
+ const value = object[key]
268
+ if (isPromise(value)) {
269
+ numPromises += 1
270
+ value.then((key => function (res) {
271
+ result[key] = res
272
+ numPromises -= 1
273
+ if (numPromises == 0) {
274
+ resolve(result)
275
+ }
276
+ })(key))
277
+ } else {
278
+ result[key] = value
279
+ }
280
+ }
281
+ if (numPromises == 0) {
282
+ resolve(result)
283
+ }
284
+ }
285
+
286
+ const promiseObjectAll = object => new Promise(promiseObjectAllExecutor(object))
183
287
 
184
288
  const functionArrayAll = function (funcs, args) {
185
289
  const funcsLength = funcs.length,
186
290
  result = Array(funcsLength)
187
291
  let funcsIndex = -1, isAsync = false
188
292
  while (++funcsIndex < funcsLength) {
189
- const resultItem = funcs[funcsIndex](...args)
293
+ const f = funcs[funcsIndex]
294
+ const resultItem = typeof f == 'function' ? f(...args) : f
190
295
  if (isPromise(resultItem)) {
191
296
  isAsync = true
192
297
  }
@@ -268,7 +373,8 @@ const functionArrayAllSeries = function (funcs, args) {
268
373
  const functionObjectAll = function (funcs, args) {
269
374
  const result = {}, promises = []
270
375
  for (const key in funcs) {
271
- const resultItem = funcs[key](...args)
376
+ const f = funcs[key]
377
+ const resultItem = typeof f == 'function' ? f(...args) : f
272
378
  if (isPromise(resultItem)) {
273
379
  promises.push(resultItem.then(curry3(objectSet, result, key, __)))
274
380
  } else {
@@ -278,7 +384,48 @@ const functionObjectAll = function (funcs, args) {
278
384
  return promises.length == 0 ? result : promiseAll(promises).then(always(result))
279
385
  }
280
386
 
387
+ const _allValues = function (values) {
388
+ if (isArray(values)) {
389
+ return areAnyValuesPromises(values)
390
+ ? promiseAll(values)
391
+ : values
392
+ }
393
+ return areAnyValuesPromises(values)
394
+ ? promiseObjectAll(values)
395
+ : values
396
+ }
397
+
281
398
  const all = function (...args) {
399
+ if (args.length == 1) {
400
+ const resolversOrValues = args[0]
401
+ if (isPromise(resolversOrValues)) {
402
+ return resolversOrValues.then(_allValues)
403
+ }
404
+ if (areAllValuesNonfunctions(resolversOrValues)) {
405
+ return _allValues(resolversOrValues)
406
+ }
407
+ return isArray(resolversOrValues)
408
+ ? curryArgs2(functionArrayAll, resolversOrValues, __)
409
+ : curryArgs2(functionObjectAll, resolversOrValues, __)
410
+ }
411
+
412
+ const resolversOrValues = args[args.length - 1]
413
+ const argValues = args.slice(0, -1)
414
+
415
+ if (areAnyValuesPromises(argValues)) {
416
+ return isArray(resolversOrValues)
417
+ ? promiseAll(argValues)
418
+ .then(curry2(functionArrayAll, resolversOrValues, __))
419
+ : promiseAll(argValues)
420
+ .then(curry2(functionObjectAll, resolversOrValues, __))
421
+ }
422
+
423
+ return isArray(resolversOrValues)
424
+ ? functionArrayAll(resolversOrValues, argValues)
425
+ : functionObjectAll(resolversOrValues, argValues)
426
+
427
+ /*
428
+ ////////////////////////////////////////////////////////////////
282
429
  const funcs = args.pop()
283
430
  if (args.length == 0) {
284
431
  return isArray(funcs)
@@ -295,6 +442,7 @@ const all = function (...args) {
295
442
  return isArray(funcs)
296
443
  ? functionArrayAll(funcs, args)
297
444
  : functionObjectAll(funcs, args)
445
+ */
298
446
  }
299
447
 
300
448
  all.series = function allSeries(...args) {
@@ -405,17 +553,6 @@ const arrayConditional = function (array, args, funcsIndex) {
405
553
  : defaultResolverOrValue
406
554
  }
407
555
 
408
- const areAllValuesNonfunctions = function (values) {
409
- const length = values.length
410
- let index = -1
411
- while (++index < length) {
412
- if (typeof values[index] == 'function') {
413
- return false
414
- }
415
- }
416
- return true
417
- }
418
-
419
556
  const thunkify2 = (func, arg0, arg1) => function thunk() {
420
557
  return func(arg0, arg1)
421
558
  }
@@ -445,37 +582,6 @@ const nonfunctionsConditional = function (array, index) {
445
582
  return array[index]
446
583
  }
447
584
 
448
- // argument resolver for curryArgs3
449
- const curryArgs3ResolveArgs0 = (
450
- baseFunc, arg1, arg2,
451
- ) => function args0Resolver(...args) {
452
- return baseFunc(args, arg1, arg2)
453
- }
454
-
455
- // argument resolver for curryArgs3
456
- const curryArgs3ResolveArgs1 = (
457
- baseFunc, arg0, arg2,
458
- ) => function arg1Resolver(...args) {
459
- return baseFunc(arg0, args, arg2)
460
- }
461
-
462
- // argument resolver for curryArgs3
463
- const curryArgs3ResolveArgs2 = (
464
- baseFunc, arg0, arg1,
465
- ) => function arg2Resolver(...args) {
466
- return baseFunc(arg0, arg1, args)
467
- }
468
-
469
- const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
470
- if (arg0 == __) {
471
- return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
472
- }
473
- if (arg1 == __) {
474
- return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
475
- }
476
- return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
477
- }
478
-
479
585
  const switchCase = (...args) => {
480
586
  const values = args.pop()
481
587
  if (areAllValuesNonfunctions(values)) {
@@ -595,31 +701,6 @@ const mapMap = function (value, mapper) {
595
701
  : promiseAll(promises).then(always(result))
596
702
  }
597
703
 
598
- const promiseObjectAllExecutor = object => function executor(resolve) {
599
- const result = {}
600
- let numPromises = 0
601
- for (const key in object) {
602
- const value = object[key]
603
- if (isPromise(value)) {
604
- numPromises += 1
605
- value.then((key => function (res) {
606
- result[key] = res
607
- numPromises -= 1
608
- if (numPromises == 0) {
609
- resolve(result)
610
- }
611
- })(key))
612
- } else {
613
- result[key] = value
614
- }
615
- }
616
- if (numPromises == 0) {
617
- resolve(result)
618
- }
619
- }
620
-
621
- const promiseObjectAll = object => new Promise(promiseObjectAllExecutor(object))
622
-
623
704
  const objectMap = function (object, mapper) {
624
705
  const result = {}
625
706
  let isAsync = false