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/all.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.
@@ -13,11 +13,23 @@
13
13
 
14
14
  const isPromise = value => value != null && typeof value.then == 'function'
15
15
 
16
+ const isArray = Array.isArray
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
  }
@@ -25,9 +37,52 @@ const areAnyValuesPromises = function (values) {
25
37
  return false
26
38
  }
27
39
 
40
+ const areAllValuesNonfunctions = function (values) {
41
+ if (isArray(values)) {
42
+ const length = values.length
43
+ let index = -1
44
+ while (++index < length) {
45
+ if (typeof values[index] == 'function') {
46
+ return false
47
+ }
48
+ }
49
+ return true
50
+ }
51
+
52
+ for (const key in values) {
53
+ if (typeof values[key] == 'function') {
54
+ return false
55
+ }
56
+ }
57
+ return true
58
+ }
59
+
28
60
  const promiseAll = Promise.all.bind(Promise)
29
61
 
30
- const isArray = Array.isArray
62
+ const promiseObjectAllExecutor = object => function executor(resolve) {
63
+ const result = {}
64
+ let numPromises = 0
65
+ for (const key in object) {
66
+ const value = object[key]
67
+ if (isPromise(value)) {
68
+ numPromises += 1
69
+ value.then((key => function (res) {
70
+ result[key] = res
71
+ numPromises -= 1
72
+ if (numPromises == 0) {
73
+ resolve(result)
74
+ }
75
+ })(key))
76
+ } else {
77
+ result[key] = value
78
+ }
79
+ }
80
+ if (numPromises == 0) {
81
+ resolve(result)
82
+ }
83
+ }
84
+
85
+ const promiseObjectAll = object => new Promise(promiseObjectAllExecutor(object))
31
86
 
32
87
  const __ = Symbol.for('placeholder')
33
88
 
@@ -77,7 +132,8 @@ const functionArrayAll = function (funcs, args) {
77
132
  result = Array(funcsLength)
78
133
  let funcsIndex = -1, isAsync = false
79
134
  while (++funcsIndex < funcsLength) {
80
- const resultItem = funcs[funcsIndex](...args)
135
+ const f = funcs[funcsIndex]
136
+ const resultItem = typeof f == 'function' ? f(...args) : f
81
137
  if (isPromise(resultItem)) {
82
138
  isAsync = true
83
139
  }
@@ -201,7 +257,8 @@ const always = value => function getter() { return value }
201
257
  const functionObjectAll = function (funcs, args) {
202
258
  const result = {}, promises = []
203
259
  for (const key in funcs) {
204
- const resultItem = funcs[key](...args)
260
+ const f = funcs[key]
261
+ const resultItem = typeof f == 'function' ? f(...args) : f
205
262
  if (isPromise(resultItem)) {
206
263
  promises.push(resultItem.then(curry3(objectSet, result, key, __)))
207
264
  } else {
@@ -211,7 +268,48 @@ const functionObjectAll = function (funcs, args) {
211
268
  return promises.length == 0 ? result : promiseAll(promises).then(always(result))
212
269
  }
213
270
 
271
+ const _allValues = function (values) {
272
+ if (isArray(values)) {
273
+ return areAnyValuesPromises(values)
274
+ ? promiseAll(values)
275
+ : values
276
+ }
277
+ return areAnyValuesPromises(values)
278
+ ? promiseObjectAll(values)
279
+ : values
280
+ }
281
+
214
282
  const all = function (...args) {
283
+ if (args.length == 1) {
284
+ const resolversOrValues = args[0]
285
+ if (isPromise(resolversOrValues)) {
286
+ return resolversOrValues.then(_allValues)
287
+ }
288
+ if (areAllValuesNonfunctions(resolversOrValues)) {
289
+ return _allValues(resolversOrValues)
290
+ }
291
+ return isArray(resolversOrValues)
292
+ ? curryArgs2(functionArrayAll, resolversOrValues, __)
293
+ : curryArgs2(functionObjectAll, resolversOrValues, __)
294
+ }
295
+
296
+ const resolversOrValues = args[args.length - 1]
297
+ const argValues = args.slice(0, -1)
298
+
299
+ if (areAnyValuesPromises(argValues)) {
300
+ return isArray(resolversOrValues)
301
+ ? promiseAll(argValues)
302
+ .then(curry2(functionArrayAll, resolversOrValues, __))
303
+ : promiseAll(argValues)
304
+ .then(curry2(functionObjectAll, resolversOrValues, __))
305
+ }
306
+
307
+ return isArray(resolversOrValues)
308
+ ? functionArrayAll(resolversOrValues, argValues)
309
+ : functionObjectAll(resolversOrValues, argValues)
310
+
311
+ /*
312
+ ////////////////////////////////////////////////////////////////
215
313
  const funcs = args.pop()
216
314
  if (args.length == 0) {
217
315
  return isArray(funcs)
@@ -228,6 +326,7 @@ const all = function (...args) {
228
326
  return isArray(funcs)
229
327
  ? functionArrayAll(funcs, args)
230
328
  : functionObjectAll(funcs, args)
329
+ */
231
330
  }
232
331
 
233
332
  all.series = function allSeries(...args) {
package/dist/all.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.all=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=function(t){const r=t.length;let o=-1;for(;++o<r;){const r=t[o];if(n(r))return!0}return!1},r=Promise.all.bind(Promise),o=Array.isArray,e=Symbol.for("placeholder"),u=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=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)},i=function(t,o){const e=t.length,u=Array(e);let c=-1,i=!1;for(;++c<e;){const r=t[c](...o);n(r)&&(i=!0),u[c]=r}return i?r(u):u},f=(t,r)=>function(...o){const e=t(...o);return n(e)?e.then(r):r(e)},s=function(n,t,r,o){return t==e?((n,t,r)=>function(o){return n(o,t,r)})(n,r,o):r==e?((n,t,r)=>function(o){return n(t,o,r)})(n,t,o):((n,t,r)=>function(o){return n(t,r,o)})(n,t,r)},l=function(n,t,r){return n[t]=r,n},h=async function(t,r,o,e){const u=t.length;for(;++e<u;){const u=t[e](...r);o[e]=n(u)?await u:u}return o},a=function(t,r){const o=t.length,u=[];let c=-1;for(;++c<o;){const o=t[c](...r);if(n(o))return o.then(f(s(l,u,c,e),(i=h,p=r,g=e,y=c,(a=t)==e?((n,t,r,o)=>function(e){return n(e,t,r,o)})(i,p,g,y):p==e?((n,t,r,o)=>function(e){return n(t,e,r,o)})(i,a,g,y):g==e?((n,t,r,o)=>function(e){return n(t,r,e,o)})(i,a,p,y):((n,t,r,o)=>function(e){return n(t,r,o,e)})(i,a,p,g))));u[c]=o}var i,a,p,g,y;return u},p=function(t,o){const u={},c=[];for(const r in t){const i=t[r](...o);n(i)?c.push(i.then(s(l,u,r,e))):u[r]=i}return 0==c.length?u:r(c).then((i=u,function(){return i}));var i},g=function(...n){const f=n.pop();return 0==n.length?o(f)?c(i,f,e):c(p,f,e):t(n)?o(f)?r(n).then(u(i,f,e)):r(n).then(u(p,f,e)):o(f)?i(f,n):p(f,n)};return g.series=function(...n){const o=n.pop();return 0==n.length?c(a,o,e):t(n)?r(n).then(u(a,o,e)):a(o,n)},g}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.all=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=Array.isArray,r=function(r){if(t(r)){const t=r.length;let o=-1;for(;++o<t;){const t=r[o];if(n(t))return!0}return!1}for(const t in r){const o=r[t];if(n(o))return!0}return!1},o=Promise.all.bind(Promise),e=t=>new Promise((t=>function(r){const o={};let e=0;for(const u in t){const c=t[u];n(c)?(e+=1,c.then((n=>function(t){o[n]=t,e-=1,0==e&&r(o)})(u))):o[u]=c}0==e&&r(o)})(t)),u=Symbol.for("placeholder"),c=function(n,t,r){return t==u?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)},f=function(n,t,r){return t==u?((n,t)=>function(...r){return n(r,t)})(n,r):((n,t)=>function(...r){return n(t,r)})(n,t)},i=function(t,r){const e=t.length,u=Array(e);let c=-1,f=!1;for(;++c<e;){const o=t[c],e="function"==typeof o?o(...r):o;n(e)&&(f=!0),u[c]=e}return f?o(u):u},s=(t,r)=>function(...o){const e=t(...o);return n(e)?e.then(r):r(e)},l=function(n,t,r,o){return t==u?((n,t,r)=>function(o){return n(o,t,r)})(n,r,o):r==u?((n,t,r)=>function(o){return n(t,o,r)})(n,t,o):((n,t,r)=>function(o){return n(t,r,o)})(n,t,r)},h=function(n,t,r){return n[t]=r,n},a=async function(t,r,o,e){const u=t.length;for(;++e<u;){const u=t[e](...r);o[e]=n(u)?await u:u}return o},p=function(t,r){const o=t.length,e=[];let c=-1;for(;++c<o;){const o=t[c](...r);if(n(o))return o.then(s(l(h,e,c,u),(f=a,p=r,y=u,g=c,(i=t)==u?((n,t,r,o)=>function(e){return n(e,t,r,o)})(f,p,y,g):p==u?((n,t,r,o)=>function(e){return n(t,e,r,o)})(f,i,y,g):y==u?((n,t,r,o)=>function(e){return n(t,r,e,o)})(f,i,p,g):((n,t,r,o)=>function(e){return n(t,r,o,e)})(f,i,p,y))));e[c]=o}var f,i,p,y,g;return e},y=function(t,r){const e={},c=[];for(const o in t){const f=t[o],i="function"==typeof f?f(...r):f;n(i)?c.push(i.then(l(h,e,o,u))):e[o]=i}return 0==c.length?e:o(c).then((f=e,function(){return f}));var f},g=function(n){return t(n)?r(n)?o(n):n:r(n)?e(n):n},b=function(...e){if(1==e.length){const r=e[0];return n(r)?r.then(g):function(n){if(t(n)){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0}for(const t in n)if("function"==typeof n[t])return!1;return!0}(r)?g(r):t(r)?f(i,r,u):f(y,r,u)}const s=e[e.length-1],l=e.slice(0,-1);return r(l)?t(s)?o(l).then(c(i,s,u)):o(l).then(c(y,s,u)):t(s)?i(s,l):y(s,l)};return b.series=function(...n){const t=n.pop();return 0==n.length?f(p,t,u):r(n)?o(n).then(c(p,t,u)):p(t,n)},b}());
package/dist/all.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.
@@ -7,11 +7,23 @@
7
7
 
8
8
  const isPromise = value => value != null && typeof value.then == 'function'
9
9
 
10
+ const isArray = Array.isArray
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
  }
@@ -19,9 +31,52 @@ const areAnyValuesPromises = function (values) {
19
31
  return false
20
32
  }
21
33
 
34
+ const areAllValuesNonfunctions = function (values) {
35
+ if (isArray(values)) {
36
+ const length = values.length
37
+ let index = -1
38
+ while (++index < length) {
39
+ if (typeof values[index] == 'function') {
40
+ return false
41
+ }
42
+ }
43
+ return true
44
+ }
45
+
46
+ for (const key in values) {
47
+ if (typeof values[key] == 'function') {
48
+ return false
49
+ }
50
+ }
51
+ return true
52
+ }
53
+
22
54
  const promiseAll = Promise.all.bind(Promise)
23
55
 
24
- const isArray = Array.isArray
56
+ const promiseObjectAllExecutor = object => function executor(resolve) {
57
+ const result = {}
58
+ let numPromises = 0
59
+ for (const key in object) {
60
+ const value = object[key]
61
+ if (isPromise(value)) {
62
+ numPromises += 1
63
+ value.then((key => function (res) {
64
+ result[key] = res
65
+ numPromises -= 1
66
+ if (numPromises == 0) {
67
+ resolve(result)
68
+ }
69
+ })(key))
70
+ } else {
71
+ result[key] = value
72
+ }
73
+ }
74
+ if (numPromises == 0) {
75
+ resolve(result)
76
+ }
77
+ }
78
+
79
+ const promiseObjectAll = object => new Promise(promiseObjectAllExecutor(object))
25
80
 
26
81
  const __ = Symbol.for('placeholder')
27
82
 
@@ -71,7 +126,8 @@ const functionArrayAll = function (funcs, args) {
71
126
  result = Array(funcsLength)
72
127
  let funcsIndex = -1, isAsync = false
73
128
  while (++funcsIndex < funcsLength) {
74
- const resultItem = funcs[funcsIndex](...args)
129
+ const f = funcs[funcsIndex]
130
+ const resultItem = typeof f == 'function' ? f(...args) : f
75
131
  if (isPromise(resultItem)) {
76
132
  isAsync = true
77
133
  }
@@ -195,7 +251,8 @@ const always = value => function getter() { return value }
195
251
  const functionObjectAll = function (funcs, args) {
196
252
  const result = {}, promises = []
197
253
  for (const key in funcs) {
198
- const resultItem = funcs[key](...args)
254
+ const f = funcs[key]
255
+ const resultItem = typeof f == 'function' ? f(...args) : f
199
256
  if (isPromise(resultItem)) {
200
257
  promises.push(resultItem.then(curry3(objectSet, result, key, __)))
201
258
  } else {
@@ -205,7 +262,48 @@ const functionObjectAll = function (funcs, args) {
205
262
  return promises.length == 0 ? result : promiseAll(promises).then(always(result))
206
263
  }
207
264
 
265
+ const _allValues = function (values) {
266
+ if (isArray(values)) {
267
+ return areAnyValuesPromises(values)
268
+ ? promiseAll(values)
269
+ : values
270
+ }
271
+ return areAnyValuesPromises(values)
272
+ ? promiseObjectAll(values)
273
+ : values
274
+ }
275
+
208
276
  const all = function (...args) {
277
+ if (args.length == 1) {
278
+ const resolversOrValues = args[0]
279
+ if (isPromise(resolversOrValues)) {
280
+ return resolversOrValues.then(_allValues)
281
+ }
282
+ if (areAllValuesNonfunctions(resolversOrValues)) {
283
+ return _allValues(resolversOrValues)
284
+ }
285
+ return isArray(resolversOrValues)
286
+ ? curryArgs2(functionArrayAll, resolversOrValues, __)
287
+ : curryArgs2(functionObjectAll, resolversOrValues, __)
288
+ }
289
+
290
+ const resolversOrValues = args[args.length - 1]
291
+ const argValues = args.slice(0, -1)
292
+
293
+ if (areAnyValuesPromises(argValues)) {
294
+ return isArray(resolversOrValues)
295
+ ? promiseAll(argValues)
296
+ .then(curry2(functionArrayAll, resolversOrValues, __))
297
+ : promiseAll(argValues)
298
+ .then(curry2(functionObjectAll, resolversOrValues, __))
299
+ }
300
+
301
+ return isArray(resolversOrValues)
302
+ ? functionArrayAll(resolversOrValues, argValues)
303
+ : functionObjectAll(resolversOrValues, argValues)
304
+
305
+ /*
306
+ ////////////////////////////////////////////////////////////////
209
307
  const funcs = args.pop()
210
308
  if (args.length == 0) {
211
309
  return isArray(funcs)
@@ -222,6 +320,7 @@ const all = function (...args) {
222
320
  return isArray(funcs)
223
321
  ? functionArrayAll(funcs, args)
224
322
  : functionObjectAll(funcs, args)
323
+ */
225
324
  }
226
325
 
227
326
  all.series = function allSeries(...args) {
package/dist/always.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/always.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/always.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/and.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.
@@ -9,11 +9,23 @@ const promiseAll = Promise.all.bind(Promise)
9
9
 
10
10
  const isPromise = value => value != null && typeof value.then == 'function'
11
11
 
12
+ const isArray = Array.isArray
13
+
12
14
  const areAnyValuesPromises = function (values) {
13
- const length = values.length
14
- let index = -1
15
- while (++index < length) {
16
- const value = values[index]
15
+ if (isArray(values)) {
16
+ const length = values.length
17
+ let index = -1
18
+ while (++index < length) {
19
+ const value = values[index]
20
+ if (isPromise(value)) {
21
+ return true
22
+ }
23
+ }
24
+ return false
25
+ }
26
+
27
+ for (const key in values) {
28
+ const value = values[key]
17
29
  if (isPromise(value)) {
18
30
  return true
19
31
  }
@@ -100,10 +112,19 @@ const thunkConditional = (
100
112
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
101
113
 
102
114
  const areAllValuesNonfunctions = function (values) {
103
- const length = values.length
104
- let index = -1
105
- while (++index < length) {
106
- if (typeof values[index] == 'function') {
115
+ if (isArray(values)) {
116
+ const length = values.length
117
+ let index = -1
118
+ while (++index < length) {
119
+ if (typeof values[index] == 'function') {
120
+ return false
121
+ }
122
+ }
123
+ return true
124
+ }
125
+
126
+ for (const key in values) {
127
+ if (typeof values[key] == 'function') {
107
128
  return false
108
129
  }
109
130
  }
@@ -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 promiseAll=Promise.all.bind(Promise),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},__=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)},curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},curryArgs2ResolveArgs0=(r,e,n)=>function(...n){return r(n,e)},curryArgs2ResolveArgs1=(r,e,n)=>function(...n){return r(e,n)},curryArgs2=function(r,e,n){return e==__?curryArgs2ResolveArgs0(r,n):curryArgs2ResolveArgs1(r,e)},thunkConditional=(r,e,n)=>r?e():n(),areAllValuesNonfunctions=function(r){const e=r.length;let n=-1;for(;++n<e;)if("function"==typeof r[n])return!1;return!0},thunkify2=(r,e,n)=>function(){return r(e,n)},thunkify3=(r,e,n,t)=>function(){return r(e,n,t)},always=r=>function(){return r},areAllValuesTruthy=function(r,e){const n=r.length;for(;++e<n;){const n=r[e];if(isPromise(n))return n.then(curry3(thunkConditional,__,thunkify2(areAllValuesTruthy,r,e),always(!1)));if(!n)return!1}return!0},asyncArePredicatesAllTruthy=async function(r,e,n){const t=e.length;for(;++n<t;){let t=e[n];if("function"==typeof t&&(t=t(...r)),isPromise(t)&&(t=await t),!t)return!1}return!0},areAllPredicatesTruthy=function(r,e){const n=e.length;let t=-1;for(;++t<n;){let n=e[t];if("function"==typeof n&&(n=n(...r)),isPromise(n))return n.then(curry3(thunkConditional,__,thunkify3(asyncArePredicatesAllTruthy,r,e,t),always(!1)));if(!n)return!1}return!0},and=function(...r){const e=r.pop();return areAllValuesNonfunctions(e)?areAllValuesTruthy(e,-1):0==r.length?curryArgs2(areAllPredicatesTruthy,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAllPredicatesTruthy,__,e)):areAllPredicatesTruthy(r,e)};export default and;
7
+ const promiseAll=Promise.all.bind(Promise),isPromise=r=>null!=r&&"function"==typeof r.then,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},__=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)},thunkConditional=(r,n,e)=>r?n():e(),areAllValuesNonfunctions=function(r){if(isArray(r)){const n=r.length;let e=-1;for(;++e<n;)if("function"==typeof r[e])return!1;return!0}for(const n in r)if("function"==typeof r[n])return!1;return!0},thunkify2=(r,n,e)=>function(){return r(n,e)},thunkify3=(r,n,e,t)=>function(){return r(n,e,t)},always=r=>function(){return r},areAllValuesTruthy=function(r,n){const e=r.length;for(;++n<e;){const e=r[n];if(isPromise(e))return e.then(curry3(thunkConditional,__,thunkify2(areAllValuesTruthy,r,n),always(!1)));if(!e)return!1}return!0},asyncArePredicatesAllTruthy=async function(r,n,e){const t=n.length;for(;++e<t;){let t=n[e];if("function"==typeof t&&(t=t(...r)),isPromise(t)&&(t=await t),!t)return!1}return!0},areAllPredicatesTruthy=function(r,n){const e=n.length;let t=-1;for(;++t<e;){let e=n[t];if("function"==typeof e&&(e=e(...r)),isPromise(e))return e.then(curry3(thunkConditional,__,thunkify3(asyncArePredicatesAllTruthy,r,n,t),always(!1)));if(!e)return!1}return!0},and=function(...r){const n=r.pop();return areAllValuesNonfunctions(n)?areAllValuesTruthy(n,-1):0==r.length?curryArgs2(areAllPredicatesTruthy,__,n):areAnyValuesPromises(r)?promiseAll(r).then(curry2(areAllPredicatesTruthy,__,n)):areAllPredicatesTruthy(r,n)};export default and;
package/dist/and.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.
@@ -15,11 +15,23 @@ const promiseAll = Promise.all.bind(Promise)
15
15
 
16
16
  const isPromise = value => value != null && typeof value.then == 'function'
17
17
 
18
+ const isArray = Array.isArray
19
+
18
20
  const areAnyValuesPromises = function (values) {
19
- const length = values.length
20
- let index = -1
21
- while (++index < length) {
22
- const value = values[index]
21
+ if (isArray(values)) {
22
+ const length = values.length
23
+ let index = -1
24
+ while (++index < length) {
25
+ const value = values[index]
26
+ if (isPromise(value)) {
27
+ return true
28
+ }
29
+ }
30
+ return false
31
+ }
32
+
33
+ for (const key in values) {
34
+ const value = values[key]
23
35
  if (isPromise(value)) {
24
36
  return true
25
37
  }
@@ -106,10 +118,19 @@ const thunkConditional = (
106
118
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
107
119
 
108
120
  const areAllValuesNonfunctions = function (values) {
109
- const length = values.length
110
- let index = -1
111
- while (++index < length) {
112
- if (typeof values[index] == 'function') {
121
+ if (isArray(values)) {
122
+ const length = values.length
123
+ let index = -1
124
+ while (++index < length) {
125
+ if (typeof values[index] == 'function') {
126
+ return false
127
+ }
128
+ }
129
+ return true
130
+ }
131
+
132
+ for (const key in values) {
133
+ if (typeof values[key] == 'function') {
113
134
  return false
114
135
  }
115
136
  }
package/dist/and.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.and=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Promise.all.bind(Promise),t=n=>null!=n&&"function"==typeof n.then,r=Symbol.for("placeholder"),e=function(n,t,e,o){return t==r?((n,t,r)=>function(e){return n(e,t,r)})(n,e,o):e==r?((n,t,r)=>function(e){return n(t,e,r)})(n,t,o):((n,t,r)=>function(e){return n(t,r,e)})(n,t,e)},o=(n,t,r)=>n?t():r(),u=(n,t,r)=>function(){return n(t,r)},f=(n,t,r,e)=>function(){return n(t,r,e)},i=n=>function(){return n},c=function(n,f){const l=n.length;for(;++f<l;){const l=n[f];if(t(l))return l.then(e(o,r,u(c,n,f),i(!1)));if(!l)return!1}return!0},l=async function(n,r,e){const o=r.length;for(;++e<o;){let o=r[e];if("function"==typeof o&&(o=o(...n)),t(o)&&(o=await o),!o)return!1}return!0},s=function(n,u){const c=u.length;let s=-1;for(;++s<c;){let c=u[s];if("function"==typeof c&&(c=c(...n)),t(c))return c.then(e(o,r,f(l,n,u,s),i(!1)));if(!c)return!1}return!0};return function(...e){const o=e.pop();return function(n){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0}(o)?c(o,-1):0==e.length?(u=s,i=o,(f=r)==r?((n,t)=>function(...r){return n(r,t)})(u,i):((n,t)=>function(...r){return n(t,r)})(u,f)):function(n){const r=n.length;let e=-1;for(;++e<r;){const r=n[e];if(t(r))return!0}return!1}(e)?n(e).then(function(n,t,e){return t==r?((n,t)=>function(r){return n(r,t)})(n,e):((n,t)=>function(r){return n(t,r)})(n,t)}(s,r,o)):s(e,o);var u,f,i}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.and=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Promise.all.bind(Promise),t=n=>null!=n&&"function"==typeof n.then,r=Array.isArray,e=Symbol.for("placeholder"),o=function(n,t,r,o){return t==e?((n,t,r)=>function(e){return n(e,t,r)})(n,r,o):r==e?((n,t,r)=>function(e){return n(t,e,r)})(n,t,o):((n,t,r)=>function(e){return n(t,r,e)})(n,t,r)},u=(n,t,r)=>n?t():r(),f=(n,t,r)=>function(){return n(t,r)},i=(n,t,r,e)=>function(){return n(t,r,e)},c=n=>function(){return n},l=function(n,r){const i=n.length;for(;++r<i;){const i=n[r];if(t(i))return i.then(o(u,e,f(l,n,r),c(!1)));if(!i)return!1}return!0},s=async function(n,r,e){const o=r.length;for(;++e<o;){let o=r[e];if("function"==typeof o&&(o=o(...n)),t(o)&&(o=await o),!o)return!1}return!0},h=function(n,r){const f=r.length;let l=-1;for(;++l<f;){let f=r[l];if("function"==typeof f&&(f=f(...n)),t(f))return f.then(o(u,e,i(s,n,r,l),c(!1)));if(!f)return!1}return!0};return function(...o){const u=o.pop();return function(n){if(r(n)){const t=n.length;let r=-1;for(;++r<t;)if("function"==typeof n[r])return!1;return!0}for(const t in n)if("function"==typeof n[t])return!1;return!0}(u)?l(u,-1):0==o.length?(f=h,c=u,(i=e)==e?((n,t)=>function(...r){return n(r,t)})(f,c):((n,t)=>function(...r){return n(t,r)})(f,i)):function(n){if(r(n)){const r=n.length;let e=-1;for(;++e<r;){const r=n[e];if(t(r))return!0}return!1}for(const r in n){const e=n[r];if(t(e))return!0}return!1}(o)?n(o).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)}(h,e,u)):h(o,u);var f,i,c}}());
package/dist/and.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.
@@ -9,11 +9,23 @@ const promiseAll = Promise.all.bind(Promise)
9
9
 
10
10
  const isPromise = value => value != null && typeof value.then == 'function'
11
11
 
12
+ const isArray = Array.isArray
13
+
12
14
  const areAnyValuesPromises = function (values) {
13
- const length = values.length
14
- let index = -1
15
- while (++index < length) {
16
- const value = values[index]
15
+ if (isArray(values)) {
16
+ const length = values.length
17
+ let index = -1
18
+ while (++index < length) {
19
+ const value = values[index]
20
+ if (isPromise(value)) {
21
+ return true
22
+ }
23
+ }
24
+ return false
25
+ }
26
+
27
+ for (const key in values) {
28
+ const value = values[key]
17
29
  if (isPromise(value)) {
18
30
  return true
19
31
  }
@@ -100,10 +112,19 @@ const thunkConditional = (
100
112
  ) => conditionalExpression ? thunkOnTruthy() : thunkOnFalsy()
101
113
 
102
114
  const areAllValuesNonfunctions = function (values) {
103
- const length = values.length
104
- let index = -1
105
- while (++index < length) {
106
- if (typeof values[index] == 'function') {
115
+ if (isArray(values)) {
116
+ const length = values.length
117
+ let index = -1
118
+ while (++index < length) {
119
+ if (typeof values[index] == 'function') {
120
+ return false
121
+ }
122
+ }
123
+ return true
124
+ }
125
+
126
+ for (const key in values) {
127
+ if (typeof values[key] == 'function') {
107
128
  return false
108
129
  }
109
130
  }
package/dist/assign.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.
@@ -74,7 +74,8 @@ const objectSet = function (object, property, value) {
74
74
  const functionObjectAll = function (funcs, args) {
75
75
  const result = {}, promises = []
76
76
  for (const key in funcs) {
77
- const resultItem = funcs[key](...args)
77
+ const f = funcs[key]
78
+ const resultItem = typeof f == 'function' ? f(...args) : f
78
79
  if (isPromise(resultItem)) {
79
80
  promises.push(resultItem.then(curry3(objectSet, result, key, __)))
80
81
  } else {
@@ -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,objectAssign=Object.assign,__=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)},always=r=>function(){return r},promiseAll=Promise.all.bind(Promise),objectSet=function(r,n,e){return r[n]=e,r},functionObjectAll=function(r,n){const e={},t=[];for(const o in r){const s=r[o](...n);isPromise(s)?t.push(s.then(curry3(objectSet,e,o,__))):e[o]=s}return 0==t.length?e:promiseAll(t).then(always(e))},_assign=function(r,n){const e=functionObjectAll(n,[r]);return isPromise(e)?e.then(curry3(objectAssign,{},r,__)):{...r,...e}},assign=function(r,n){return null==n?curry2(_assign,__,r):isPromise(r)?r.then(curry2(_assign,__,n)):_assign(r,n)};export default assign;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,objectAssign=Object.assign,__=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)},always=r=>function(){return r},promiseAll=Promise.all.bind(Promise),objectSet=function(r,n,e){return r[n]=e,r},functionObjectAll=function(r,n){const e={},t=[];for(const o in r){const s=r[o],u="function"==typeof s?s(...n):s;isPromise(u)?t.push(u.then(curry3(objectSet,e,o,__))):e[o]=u}return 0==t.length?e:promiseAll(t).then(always(e))},_assign=function(r,n){const e=functionObjectAll(n,[r]);return isPromise(e)?e.then(curry3(objectAssign,{},r,__)):{...r,...e}},assign=function(r,n){return null==n?curry2(_assign,__,r):isPromise(r)?r.then(curry2(_assign,__,n)):_assign(r,n)};export default assign;
package/dist/assign.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.
@@ -80,7 +80,8 @@ const objectSet = function (object, property, value) {
80
80
  const functionObjectAll = function (funcs, args) {
81
81
  const result = {}, promises = []
82
82
  for (const key in funcs) {
83
- const resultItem = funcs[key](...args)
83
+ const f = funcs[key]
84
+ const resultItem = typeof f == 'function' ? f(...args) : f
84
85
  if (isPromise(resultItem)) {
85
86
  promises.push(resultItem.then(curry3(objectSet, result, key, __)))
86
87
  } else {