rubico 2.7.10 → 2.8.1

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