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.
- package/LICENSE +5 -17
- package/README.md +1 -1
- package/_internal/curryArity.js +34 -12
- package/_internal/funcApply2.js +18 -0
- package/_internal/mapMapEntries.js +1 -1
- package/_internal/objectMapEntries.js +1 -1
- package/curry.js +95 -12
- package/dist/Transducer.es.js +1 -1
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +1 -1
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +1 -1
- package/dist/__.es.js +1 -1
- package/dist/__.es.min.js +1 -1
- package/dist/__.js +1 -1
- package/dist/__.min.js +1 -1
- package/dist/__.mjs +1 -1
- package/dist/all.es.js +1 -1
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +1 -1
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +1 -1
- package/dist/always.es.js +1 -1
- package/dist/always.es.min.js +1 -1
- package/dist/always.js +1 -1
- package/dist/always.min.js +1 -1
- package/dist/always.mjs +1 -1
- package/dist/and.es.js +1 -1
- package/dist/and.es.min.js +1 -1
- package/dist/and.js +1 -1
- package/dist/and.min.js +1 -1
- package/dist/and.mjs +1 -1
- package/dist/assign.es.js +1 -1
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +1 -1
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +1 -1
- package/dist/compose.es.js +1 -1
- package/dist/compose.es.min.js +1 -1
- package/dist/compose.js +1 -1
- package/dist/compose.min.js +1 -1
- package/dist/compose.mjs +1 -1
- package/dist/curry.es.js +146 -13
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +146 -13
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +146 -13
- package/dist/eq.es.js +1 -1
- package/dist/eq.es.min.js +1 -1
- package/dist/eq.js +1 -1
- package/dist/eq.min.js +1 -1
- package/dist/eq.mjs +1 -1
- package/dist/every.es.js +1 -1
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +1 -1
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +1 -1
- package/dist/filter.es.js +1 -1
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +1 -1
- package/dist/flatMap.es.js +1 -1
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +1 -1
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +1 -1
- package/dist/forEach.es.js +1 -1
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +1 -1
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +1 -1
- package/dist/get.es.js +1 -1
- package/dist/get.es.min.js +1 -1
- package/dist/get.js +1 -1
- package/dist/get.min.js +1 -1
- package/dist/get.mjs +1 -1
- package/dist/gt.es.js +1 -1
- package/dist/gt.es.min.js +1 -1
- package/dist/gt.js +1 -1
- package/dist/gt.min.js +1 -1
- package/dist/gt.mjs +1 -1
- package/dist/gte.es.js +1 -1
- package/dist/gte.es.min.js +1 -1
- package/dist/gte.js +1 -1
- package/dist/gte.min.js +1 -1
- package/dist/gte.mjs +1 -1
- package/dist/lt.es.js +1 -1
- package/dist/lt.es.min.js +1 -1
- package/dist/lt.js +1 -1
- package/dist/lt.min.js +1 -1
- package/dist/lt.mjs +1 -1
- package/dist/lte.es.js +1 -1
- package/dist/lte.es.min.js +1 -1
- package/dist/lte.js +1 -1
- package/dist/lte.min.js +1 -1
- package/dist/lte.mjs +1 -1
- package/dist/map.es.js +52 -13
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +52 -13
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +52 -13
- package/dist/not.es.js +1 -1
- package/dist/not.es.min.js +1 -1
- package/dist/not.js +1 -1
- package/dist/not.min.js +1 -1
- package/dist/not.mjs +1 -1
- package/dist/omit.es.js +1 -1
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +1 -1
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +1 -1
- package/dist/or.es.js +1 -1
- package/dist/or.es.min.js +1 -1
- package/dist/or.js +1 -1
- package/dist/or.min.js +1 -1
- package/dist/or.mjs +1 -1
- package/dist/pick.es.js +1 -1
- package/dist/pick.es.min.js +1 -1
- package/dist/pick.js +1 -1
- package/dist/pick.min.js +1 -1
- package/dist/pick.mjs +1 -1
- package/dist/pipe.es.js +1 -1
- package/dist/pipe.es.min.js +1 -1
- package/dist/pipe.js +1 -1
- package/dist/pipe.min.js +1 -1
- package/dist/pipe.mjs +1 -1
- package/dist/reduce.es.js +1 -1
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +1 -1
- package/dist/rubico.es.js +63 -18
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +63 -18
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +63 -18
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +63 -18
- package/dist/set.es.js +1 -1
- package/dist/set.es.min.js +1 -1
- package/dist/set.js +1 -1
- package/dist/set.min.js +1 -1
- package/dist/set.mjs +1 -1
- package/dist/some.es.js +1 -1
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +1 -1
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +1 -1
- package/dist/switchCase.es.js +1 -1
- package/dist/switchCase.es.min.js +1 -1
- package/dist/switchCase.js +1 -1
- package/dist/switchCase.min.js +1 -1
- package/dist/switchCase.mjs +1 -1
- package/dist/tap.es.js +1 -1
- package/dist/tap.es.min.js +1 -1
- package/dist/tap.js +1 -1
- package/dist/tap.min.js +1 -1
- package/dist/tap.mjs +1 -1
- package/dist/thunkify.es.js +41 -17
- package/dist/thunkify.es.min.js +2 -2
- package/dist/thunkify.js +41 -17
- package/dist/thunkify.min.js +2 -2
- package/dist/thunkify.mjs +41 -17
- package/dist/transform.es.js +1 -1
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +1 -1
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -1
- package/dist/tryCatch.es.js +1 -1
- package/dist/tryCatch.es.min.js +1 -1
- package/dist/tryCatch.js +1 -1
- package/dist/tryCatch.min.js +1 -1
- package/dist/tryCatch.mjs +1 -1
- package/dist/x/append.es.js +1 -1
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +1 -1
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +1 -1
- package/dist/x/callProp.es.js +1 -1
- package/dist/x/callProp.es.min.js +1 -1
- package/dist/x/callProp.js +1 -1
- package/dist/x/callProp.min.js +1 -1
- package/dist/x/callProp.mjs +1 -1
- package/dist/x/defaultsDeep.es.js +1 -1
- package/dist/x/defaultsDeep.es.min.js +1 -1
- package/dist/x/defaultsDeep.js +1 -1
- package/dist/x/defaultsDeep.min.js +1 -1
- package/dist/x/defaultsDeep.mjs +1 -1
- package/dist/x/differenceWith.es.js +1 -1
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +1 -1
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +1 -1
- package/dist/x/filterOut.es.js +1 -1
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +1 -1
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +1 -1
- package/dist/x/find.es.js +1 -1
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -1
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -1
- package/dist/x/findIndex.es.js +1 -1
- package/dist/x/findIndex.es.min.js +1 -1
- package/dist/x/findIndex.js +1 -1
- package/dist/x/findIndex.min.js +1 -1
- package/dist/x/findIndex.mjs +1 -1
- package/dist/x/first.es.js +1 -1
- package/dist/x/first.es.min.js +1 -1
- package/dist/x/first.js +1 -1
- package/dist/x/first.min.js +1 -1
- package/dist/x/first.mjs +1 -1
- package/dist/x/flatten.es.js +1 -1
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +1 -1
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +1 -1
- package/dist/x/groupBy.es.js +1 -1
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +1 -1
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +1 -1
- package/dist/x/has.es.js +1 -1
- package/dist/x/has.es.min.js +1 -1
- package/dist/x/has.js +1 -1
- package/dist/x/has.min.js +1 -1
- package/dist/x/has.mjs +1 -1
- package/dist/x/identity.es.js +1 -1
- package/dist/x/identity.es.min.js +1 -1
- package/dist/x/identity.js +1 -1
- package/dist/x/identity.min.js +1 -1
- package/dist/x/identity.mjs +1 -1
- package/dist/x/includes.es.js +1 -1
- package/dist/x/includes.es.min.js +1 -1
- package/dist/x/includes.js +1 -1
- package/dist/x/includes.min.js +1 -1
- package/dist/x/includes.mjs +1 -1
- package/dist/x/isDeepEqual.es.js +1 -1
- package/dist/x/isDeepEqual.es.min.js +1 -1
- package/dist/x/isDeepEqual.js +1 -1
- package/dist/x/isDeepEqual.min.js +1 -1
- package/dist/x/isDeepEqual.mjs +1 -1
- package/dist/x/isEmpty.es.js +1 -1
- package/dist/x/isEmpty.es.min.js +1 -1
- package/dist/x/isEmpty.js +1 -1
- package/dist/x/isEmpty.min.js +1 -1
- package/dist/x/isEmpty.mjs +1 -1
- package/dist/x/isEqual.es.js +1 -1
- package/dist/x/isEqual.es.min.js +1 -1
- package/dist/x/isEqual.js +1 -1
- package/dist/x/isEqual.min.js +1 -1
- package/dist/x/isEqual.mjs +1 -1
- package/dist/x/isFunction.es.js +1 -1
- package/dist/x/isFunction.es.min.js +1 -1
- package/dist/x/isFunction.js +1 -1
- package/dist/x/isFunction.min.js +1 -1
- package/dist/x/isFunction.mjs +1 -1
- package/dist/x/isIn.es.js +1 -1
- package/dist/x/isIn.es.min.js +1 -1
- package/dist/x/isIn.js +1 -1
- package/dist/x/isIn.min.js +1 -1
- package/dist/x/isIn.mjs +1 -1
- package/dist/x/isObject.es.js +1 -1
- package/dist/x/isObject.es.min.js +1 -1
- package/dist/x/isObject.js +1 -1
- package/dist/x/isObject.min.js +1 -1
- package/dist/x/isObject.mjs +1 -1
- package/dist/x/isString.es.js +1 -1
- package/dist/x/isString.es.min.js +1 -1
- package/dist/x/isString.js +1 -1
- package/dist/x/isString.min.js +1 -1
- package/dist/x/isString.mjs +1 -1
- package/dist/x/keys.es.js +1 -1
- package/dist/x/keys.es.min.js +1 -1
- package/dist/x/keys.js +1 -1
- package/dist/x/keys.min.js +1 -1
- package/dist/x/keys.mjs +1 -1
- package/dist/x/last.es.js +1 -1
- package/dist/x/last.es.min.js +1 -1
- package/dist/x/last.js +1 -1
- package/dist/x/last.min.js +1 -1
- package/dist/x/last.mjs +1 -1
- package/dist/x/maxBy.es.js +1 -1
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +1 -1
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +1 -1
- package/dist/x/noop.es.js +1 -1
- package/dist/x/noop.es.min.js +1 -1
- package/dist/x/noop.js +1 -1
- package/dist/x/noop.min.js +1 -1
- package/dist/x/noop.mjs +1 -1
- package/dist/x/pluck.es.js +52 -13
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +52 -13
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +52 -13
- package/dist/x/prepend.es.js +1 -1
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +1 -1
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +1 -1
- package/dist/x/size.es.js +1 -1
- package/dist/x/size.es.min.js +1 -1
- package/dist/x/size.js +1 -1
- package/dist/x/size.min.js +1 -1
- package/dist/x/size.mjs +1 -1
- package/dist/x/trace.es.js +1 -1
- package/dist/x/trace.es.min.js +1 -1
- package/dist/x/trace.js +1 -1
- package/dist/x/trace.min.js +1 -1
- package/dist/x/trace.mjs +1 -1
- package/dist/x/unionWith.es.js +1 -1
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +1 -1
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +1 -1
- package/dist/x/uniq.es.js +1 -1
- package/dist/x/uniq.es.min.js +1 -1
- package/dist/x/uniq.js +1 -1
- package/dist/x/uniq.min.js +1 -1
- package/dist/x/uniq.mjs +1 -1
- package/dist/x/unless.es.js +1 -1
- package/dist/x/unless.es.min.js +1 -1
- package/dist/x/unless.js +1 -1
- package/dist/x/unless.min.js +1 -1
- package/dist/x/unless.mjs +1 -1
- package/dist/x/values.es.js +1 -1
- package/dist/x/values.es.min.js +1 -1
- package/dist/x/values.js +1 -1
- package/dist/x/values.min.js +1 -1
- package/dist/x/values.mjs +1 -1
- package/dist/x/when.es.js +1 -1
- package/dist/x/when.es.min.js +1 -1
- package/dist/x/when.js +1 -1
- package/dist/x/when.min.js +1 -1
- package/dist/x/when.mjs +1 -1
- package/es.js +63 -18
- package/index.js +63 -18
- package/package.json +1 -1
- package/thunkify.js +66 -6
package/dist/curry.es.js
CHANGED
|
@@ -1,12 +1,115 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
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
|
-
|
|
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(
|
|
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(
|
|
44
|
-
: curryArity(arity, func, nextArgs)
|
|
158
|
+
? func.apply(context, nextArgs)
|
|
159
|
+
: curryArity(arity, func, context, nextArgs)
|
|
45
160
|
}
|
|
46
161
|
}
|
|
47
|
-
|
|
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(
|
|
180
|
+
return func.apply(context, args)
|
|
63
181
|
}
|
|
64
182
|
|
|
65
|
-
const curry = (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
|
-
|
|
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/curry.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
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"),
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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(
|
|
50
|
-
: curryArity(arity, func, nextArgs)
|
|
164
|
+
? func.apply(context, nextArgs)
|
|
165
|
+
: curryArity(arity, func, context, nextArgs)
|
|
51
166
|
}
|
|
52
167
|
}
|
|
53
|
-
|
|
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(
|
|
186
|
+
return func.apply(context, args)
|
|
69
187
|
}
|
|
70
188
|
|
|
71
|
-
const curry = (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
|
-
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
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(
|
|
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(
|
|
44
|
-
: curryArity(arity, func, nextArgs)
|
|
158
|
+
? func.apply(context, nextArgs)
|
|
159
|
+
: curryArity(arity, func, context, nextArgs)
|
|
45
160
|
}
|
|
46
161
|
}
|
|
47
|
-
|
|
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(
|
|
180
|
+
return func.apply(context, args)
|
|
63
181
|
}
|
|
64
182
|
|
|
65
|
-
const curry = (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
|
-
|
|
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
package/dist/eq.es.min.js
CHANGED
package/dist/eq.js
CHANGED
package/dist/eq.min.js
CHANGED
package/dist/eq.mjs
CHANGED