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