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
|
@@ -1,16 +1,28 @@
|
|
|
1
|
+
const isArray = require('./isArray')
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
4
|
* @name areAllValuesNonfunctions
|
|
3
5
|
*
|
|
4
6
|
* @synopsis
|
|
5
7
|
* ```coffeescript [specscript]
|
|
6
8
|
* areAllValuesNonfunctions(values Array<function|value>) -> boolean
|
|
9
|
+
* areAllValuesNonfunctions(values Object<function|value>) -> boolean
|
|
7
10
|
* ```
|
|
8
11
|
*/
|
|
9
12
|
const areAllValuesNonfunctions = function (values) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
if (isArray(values)) {
|
|
14
|
+
const length = values.length
|
|
15
|
+
let index = -1
|
|
16
|
+
while (++index < length) {
|
|
17
|
+
if (typeof values[index] == 'function') {
|
|
18
|
+
return false
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return true
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
for (const key in values) {
|
|
25
|
+
if (typeof values[key] == 'function') {
|
|
14
26
|
return false
|
|
15
27
|
}
|
|
16
28
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const isArray = require('./isArray')
|
|
1
2
|
const isPromise = require('./isPromise')
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -6,13 +7,24 @@ const isPromise = require('./isPromise')
|
|
|
6
7
|
* @synopsis
|
|
7
8
|
* ```coffeescript [specscript]
|
|
8
9
|
* areAnyValuesPromises(values Array) -> boolean
|
|
10
|
+
* areAnyValuesPromises(values Object) -> boolean
|
|
9
11
|
* ```
|
|
10
12
|
*/
|
|
11
13
|
const areAnyValuesPromises = function (values) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if (isArray(values)) {
|
|
15
|
+
const length = values.length
|
|
16
|
+
let index = -1
|
|
17
|
+
while (++index < length) {
|
|
18
|
+
const value = values[index]
|
|
19
|
+
if (isPromise(value)) {
|
|
20
|
+
return true
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return false
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
for (const key in values) {
|
|
27
|
+
const value = values[key]
|
|
16
28
|
if (isPromise(value)) {
|
|
17
29
|
return true
|
|
18
30
|
}
|
|
@@ -14,7 +14,8 @@ const functionArrayAll = function (funcs, args) {
|
|
|
14
14
|
result = Array(funcsLength)
|
|
15
15
|
let funcsIndex = -1, isAsync = false
|
|
16
16
|
while (++funcsIndex < funcsLength) {
|
|
17
|
-
const
|
|
17
|
+
const f = funcs[funcsIndex]
|
|
18
|
+
const resultItem = typeof f == 'function' ? f(...args) : f
|
|
18
19
|
if (isPromise(resultItem)) {
|
|
19
20
|
isAsync = true
|
|
20
21
|
}
|
|
@@ -19,7 +19,8 @@ const objectSet = require('./objectSet')
|
|
|
19
19
|
const functionObjectAll = function (funcs, args) {
|
|
20
20
|
const result = {}, promises = []
|
|
21
21
|
for (const key in funcs) {
|
|
22
|
-
const
|
|
22
|
+
const f = funcs[key]
|
|
23
|
+
const resultItem = typeof f == 'function' ? f(...args) : f
|
|
23
24
|
if (isPromise(resultItem)) {
|
|
24
25
|
promises.push(resultItem.then(curry3(objectSet, result, key, __)))
|
|
25
26
|
} else {
|
package/all.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
const isPromise = require('./_internal/isPromise')
|
|
1
2
|
const areAnyValuesPromises = require('./_internal/areAnyValuesPromises')
|
|
3
|
+
const areAllValuesNonfunctions = require('./_internal/areAllValuesNonfunctions')
|
|
2
4
|
const promiseAll = require('./_internal/promiseAll')
|
|
5
|
+
const promiseObjectAll = require('./_internal/promiseObjectAll')
|
|
3
6
|
const isArray = require('./_internal/isArray')
|
|
4
7
|
const __ = require('./_internal/placeholder')
|
|
5
8
|
const curry2 = require('./_internal/curry2')
|
|
@@ -9,21 +12,54 @@ const functionArrayAllSeries = require('./_internal/functionArrayAllSeries')
|
|
|
9
12
|
const functionObjectAll = require('./_internal/functionObjectAll')
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
|
-
* @name
|
|
15
|
+
* @name _allValues
|
|
13
16
|
*
|
|
14
17
|
* @synopsis
|
|
15
18
|
* ```coffeescript [specscript]
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
* _allValues(values Array<Promise|any>) -> Promise<Array>
|
|
20
|
+
* _allValues(values Object<Promise|any>) -> Promise<Object>
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
const _allValues = function (values) {
|
|
24
|
+
if (isArray(values)) {
|
|
25
|
+
return areAnyValuesPromises(values)
|
|
26
|
+
? promiseAll(values)
|
|
27
|
+
: values
|
|
28
|
+
}
|
|
29
|
+
return areAnyValuesPromises(values)
|
|
30
|
+
? promiseObjectAll(values)
|
|
31
|
+
: values
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @name all
|
|
21
36
|
*
|
|
22
|
-
*
|
|
37
|
+
* @synopsis
|
|
38
|
+
* ```coffeescript [specscript]
|
|
39
|
+
* all(values Promise|Array<Promise|any>) -> result Promise|Array
|
|
40
|
+
* all(values Promise|Object<Promise|any>) -> result Promise|Object
|
|
41
|
+
*
|
|
42
|
+
* all(
|
|
43
|
+
* ...args,
|
|
44
|
+
* resolversOrValues Array<function|Promise|any>
|
|
45
|
+
* ) -> result Promise|Array
|
|
46
|
+
*
|
|
47
|
+
* all(
|
|
48
|
+
* resolversOrValues Array<function|Promise|any>
|
|
49
|
+
* )(...args) -> result Promise|Array
|
|
50
|
+
*
|
|
51
|
+
* all(
|
|
52
|
+
* ...args,
|
|
53
|
+
* resolversOrValues Object<function|Promise|any>
|
|
54
|
+
* ) -> result Promise|Object
|
|
55
|
+
*
|
|
56
|
+
* all(
|
|
57
|
+
* resolversOrValues Object<function|Promise|any>
|
|
58
|
+
* )(...args) -> result Promise|Object
|
|
23
59
|
* ```
|
|
24
60
|
*
|
|
25
61
|
* @description
|
|
26
|
-
*
|
|
62
|
+
* Calls an array or object of resolver functions or values `resolversOrValues` with provided arguments.
|
|
27
63
|
*
|
|
28
64
|
* ```javascript [playground]
|
|
29
65
|
* const createArrayOfGreetingsFor = all([
|
|
@@ -32,24 +68,29 @@ const functionObjectAll = require('./_internal/functionObjectAll')
|
|
|
32
68
|
* name => `Hello ${name}`,
|
|
33
69
|
* ])
|
|
34
70
|
*
|
|
35
|
-
* const
|
|
36
|
-
*
|
|
37
|
-
* console.log(arrayOfGreetingsForFred)
|
|
38
|
-
* // ['Hi Fred', 'Hey Fred', 'Hello Fred']
|
|
71
|
+
* const arrayOfGreetingsFor1 = createArrayOfGreetingsFor('1')
|
|
39
72
|
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* hello: name => `Hello ${name}`,
|
|
44
|
-
* })
|
|
73
|
+
* console.log(arrayOfGreetingsFor1)
|
|
74
|
+
* // ['Hi 1', 'Hey 1', 'Hello 1']
|
|
75
|
+
* ```
|
|
45
76
|
*
|
|
46
|
-
*
|
|
77
|
+
* If provided only values for `resolversOrValues`, returns an array or object with the same shape as `resolversOrValues` with any Promises resolved.
|
|
47
78
|
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
79
|
+
* ```javascript [playground]
|
|
80
|
+
* all([
|
|
81
|
+
* Promise.resolve(1),
|
|
82
|
+
* Promise.resolve(2),
|
|
83
|
+
* 3,
|
|
84
|
+
* ]).then(console.log) // [1, 2, 3]
|
|
85
|
+
*
|
|
86
|
+
* all({
|
|
87
|
+
* a: Promise.resolve(1),
|
|
88
|
+
* b: Promise.resolve(2),
|
|
89
|
+
* c: 3,
|
|
90
|
+
* }).then(console.log) // { a: 1, b: 2, c: 3 }
|
|
50
91
|
* ```
|
|
51
92
|
*
|
|
52
|
-
* `all` can
|
|
93
|
+
* `all` can be used in a pipeline to compose and manpulate data.
|
|
53
94
|
*
|
|
54
95
|
* ```javascript [playground]
|
|
55
96
|
* const identity = value => value
|
|
@@ -72,6 +113,14 @@ const functionObjectAll = require('./_internal/functionObjectAll')
|
|
|
72
113
|
* getAndLogUserById('1') // Got user {"_id":1,"name":"George"} by id 1
|
|
73
114
|
* ```
|
|
74
115
|
*
|
|
116
|
+
* Values passed in resolver position are set on the result object or array directly. If any of these values are promises, they are resolved for their values before being set on the result object or array.
|
|
117
|
+
*
|
|
118
|
+
* ```javascript [playground]
|
|
119
|
+
* all({}, [
|
|
120
|
+
* Promise.resolve(1),
|
|
121
|
+
* ])
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
75
124
|
* Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
|
|
76
125
|
*
|
|
77
126
|
* ```javascript [playground]
|
|
@@ -84,8 +133,37 @@ const functionObjectAll = require('./_internal/functionObjectAll')
|
|
|
84
133
|
*
|
|
85
134
|
* @execution concurrent
|
|
86
135
|
*/
|
|
87
|
-
|
|
88
136
|
const all = function (...args) {
|
|
137
|
+
if (args.length == 1) {
|
|
138
|
+
const resolversOrValues = args[0]
|
|
139
|
+
if (isPromise(resolversOrValues)) {
|
|
140
|
+
return resolversOrValues.then(_allValues)
|
|
141
|
+
}
|
|
142
|
+
if (areAllValuesNonfunctions(resolversOrValues)) {
|
|
143
|
+
return _allValues(resolversOrValues)
|
|
144
|
+
}
|
|
145
|
+
return isArray(resolversOrValues)
|
|
146
|
+
? curryArgs2(functionArrayAll, resolversOrValues, __)
|
|
147
|
+
: curryArgs2(functionObjectAll, resolversOrValues, __)
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
const resolversOrValues = args[args.length - 1]
|
|
151
|
+
const argValues = args.slice(0, -1)
|
|
152
|
+
|
|
153
|
+
if (areAnyValuesPromises(argValues)) {
|
|
154
|
+
return isArray(resolversOrValues)
|
|
155
|
+
? promiseAll(argValues)
|
|
156
|
+
.then(curry2(functionArrayAll, resolversOrValues, __))
|
|
157
|
+
: promiseAll(argValues)
|
|
158
|
+
.then(curry2(functionObjectAll, resolversOrValues, __))
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return isArray(resolversOrValues)
|
|
162
|
+
? functionArrayAll(resolversOrValues, argValues)
|
|
163
|
+
: functionObjectAll(resolversOrValues, argValues)
|
|
164
|
+
|
|
165
|
+
/*
|
|
166
|
+
////////////////////////////////////////////////////////////////
|
|
89
167
|
const funcs = args.pop()
|
|
90
168
|
if (args.length == 0) {
|
|
91
169
|
return isArray(funcs)
|
|
@@ -102,6 +180,7 @@ const all = function (...args) {
|
|
|
102
180
|
return isArray(funcs)
|
|
103
181
|
? functionArrayAll(funcs, args)
|
|
104
182
|
: functionObjectAll(funcs, args)
|
|
183
|
+
*/
|
|
105
184
|
}
|
|
106
185
|
|
|
107
186
|
/**
|
package/assign.js
CHANGED
|
@@ -18,13 +18,18 @@ const _assign = function (object, funcs) {
|
|
|
18
18
|
*
|
|
19
19
|
* @synopsis
|
|
20
20
|
* ```coffeescript [specscript]
|
|
21
|
-
* assign(
|
|
21
|
+
* assign(
|
|
22
|
+
* o Promise|Object,
|
|
23
|
+
* resolversOrValues Object<function|Promise|any>
|
|
24
|
+
* ) -> result Promise|Object
|
|
22
25
|
*
|
|
23
|
-
* assign(
|
|
26
|
+
* assign(
|
|
27
|
+
* resolversOrValues Object<function|Promise|any>
|
|
28
|
+
* )(o Object) -> result Promise|Object
|
|
24
29
|
* ```
|
|
25
30
|
*
|
|
26
31
|
* @description
|
|
27
|
-
* Function executor and composer. Accepts an object of resolver functions and an
|
|
32
|
+
* Function executor and composer. Accepts an object of resolver functions or values and an object `o`. Creates a result object from the argument object, evaluates each resolver with the argument object, and assigns to the result object the evaluations at the corresponding resolver keys.
|
|
28
33
|
*
|
|
29
34
|
* ```javascript [playground]
|
|
30
35
|
* const assignSquaredAndCubed = assign({
|
|
@@ -55,6 +60,17 @@ const _assign = function (object, funcs) {
|
|
|
55
60
|
* // { numbers: [1, 2, 3, 4, 5], total: 15 }
|
|
56
61
|
* ```
|
|
57
62
|
*
|
|
63
|
+
* Values passed in resolver position are set on the result object directly. If any of these values are promises, they are resolved for their values before being set on the result object.
|
|
64
|
+
*
|
|
65
|
+
* ```javascript [playground]
|
|
66
|
+
* assign({}, {
|
|
67
|
+
* a: 1,
|
|
68
|
+
* b: Promise.resolve(2),
|
|
69
|
+
* c: () => 3,
|
|
70
|
+
* d: async o => Object.keys(o).length,
|
|
71
|
+
* }).then(console.log) // { a: 1, b: 2, c: 3, d: 0 }
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
58
74
|
* Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
|
|
59
75
|
*
|
|
60
76
|
* ```javascript [playground]
|
package/dist/Transducer.es.js
CHANGED
package/dist/Transducer.js
CHANGED
package/dist/Transducer.min.js
CHANGED
package/dist/Transducer.mjs
CHANGED
package/dist/__.es.js
CHANGED
package/dist/__.es.min.js
CHANGED
package/dist/__.js
CHANGED
package/dist/__.min.js
CHANGED
package/dist/__.mjs
CHANGED
package/dist/all.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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.
|
|
@@ -7,11 +7,23 @@
|
|
|
7
7
|
|
|
8
8
|
const isPromise = value => value != null && typeof value.then == 'function'
|
|
9
9
|
|
|
10
|
+
const isArray = Array.isArray
|
|
11
|
+
|
|
10
12
|
const areAnyValuesPromises = function (values) {
|
|
11
|
-
|
|
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
|
}
|
|
@@ -19,9 +31,52 @@ const areAnyValuesPromises = function (values) {
|
|
|
19
31
|
return false
|
|
20
32
|
}
|
|
21
33
|
|
|
34
|
+
const areAllValuesNonfunctions = function (values) {
|
|
35
|
+
if (isArray(values)) {
|
|
36
|
+
const length = values.length
|
|
37
|
+
let index = -1
|
|
38
|
+
while (++index < length) {
|
|
39
|
+
if (typeof values[index] == 'function') {
|
|
40
|
+
return false
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return true
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
for (const key in values) {
|
|
47
|
+
if (typeof values[key] == 'function') {
|
|
48
|
+
return false
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return true
|
|
52
|
+
}
|
|
53
|
+
|
|
22
54
|
const promiseAll = Promise.all.bind(Promise)
|
|
23
55
|
|
|
24
|
-
const
|
|
56
|
+
const promiseObjectAllExecutor = object => function executor(resolve) {
|
|
57
|
+
const result = {}
|
|
58
|
+
let numPromises = 0
|
|
59
|
+
for (const key in object) {
|
|
60
|
+
const value = object[key]
|
|
61
|
+
if (isPromise(value)) {
|
|
62
|
+
numPromises += 1
|
|
63
|
+
value.then((key => function (res) {
|
|
64
|
+
result[key] = res
|
|
65
|
+
numPromises -= 1
|
|
66
|
+
if (numPromises == 0) {
|
|
67
|
+
resolve(result)
|
|
68
|
+
}
|
|
69
|
+
})(key))
|
|
70
|
+
} else {
|
|
71
|
+
result[key] = value
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (numPromises == 0) {
|
|
75
|
+
resolve(result)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const promiseObjectAll = object => new Promise(promiseObjectAllExecutor(object))
|
|
25
80
|
|
|
26
81
|
const __ = Symbol.for('placeholder')
|
|
27
82
|
|
|
@@ -71,7 +126,8 @@ const functionArrayAll = function (funcs, args) {
|
|
|
71
126
|
result = Array(funcsLength)
|
|
72
127
|
let funcsIndex = -1, isAsync = false
|
|
73
128
|
while (++funcsIndex < funcsLength) {
|
|
74
|
-
const
|
|
129
|
+
const f = funcs[funcsIndex]
|
|
130
|
+
const resultItem = typeof f == 'function' ? f(...args) : f
|
|
75
131
|
if (isPromise(resultItem)) {
|
|
76
132
|
isAsync = true
|
|
77
133
|
}
|
|
@@ -195,7 +251,8 @@ const always = value => function getter() { return value }
|
|
|
195
251
|
const functionObjectAll = function (funcs, args) {
|
|
196
252
|
const result = {}, promises = []
|
|
197
253
|
for (const key in funcs) {
|
|
198
|
-
const
|
|
254
|
+
const f = funcs[key]
|
|
255
|
+
const resultItem = typeof f == 'function' ? f(...args) : f
|
|
199
256
|
if (isPromise(resultItem)) {
|
|
200
257
|
promises.push(resultItem.then(curry3(objectSet, result, key, __)))
|
|
201
258
|
} else {
|
|
@@ -205,7 +262,48 @@ const functionObjectAll = function (funcs, args) {
|
|
|
205
262
|
return promises.length == 0 ? result : promiseAll(promises).then(always(result))
|
|
206
263
|
}
|
|
207
264
|
|
|
265
|
+
const _allValues = function (values) {
|
|
266
|
+
if (isArray(values)) {
|
|
267
|
+
return areAnyValuesPromises(values)
|
|
268
|
+
? promiseAll(values)
|
|
269
|
+
: values
|
|
270
|
+
}
|
|
271
|
+
return areAnyValuesPromises(values)
|
|
272
|
+
? promiseObjectAll(values)
|
|
273
|
+
: values
|
|
274
|
+
}
|
|
275
|
+
|
|
208
276
|
const all = function (...args) {
|
|
277
|
+
if (args.length == 1) {
|
|
278
|
+
const resolversOrValues = args[0]
|
|
279
|
+
if (isPromise(resolversOrValues)) {
|
|
280
|
+
return resolversOrValues.then(_allValues)
|
|
281
|
+
}
|
|
282
|
+
if (areAllValuesNonfunctions(resolversOrValues)) {
|
|
283
|
+
return _allValues(resolversOrValues)
|
|
284
|
+
}
|
|
285
|
+
return isArray(resolversOrValues)
|
|
286
|
+
? curryArgs2(functionArrayAll, resolversOrValues, __)
|
|
287
|
+
: curryArgs2(functionObjectAll, resolversOrValues, __)
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
const resolversOrValues = args[args.length - 1]
|
|
291
|
+
const argValues = args.slice(0, -1)
|
|
292
|
+
|
|
293
|
+
if (areAnyValuesPromises(argValues)) {
|
|
294
|
+
return isArray(resolversOrValues)
|
|
295
|
+
? promiseAll(argValues)
|
|
296
|
+
.then(curry2(functionArrayAll, resolversOrValues, __))
|
|
297
|
+
: promiseAll(argValues)
|
|
298
|
+
.then(curry2(functionObjectAll, resolversOrValues, __))
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
return isArray(resolversOrValues)
|
|
302
|
+
? functionArrayAll(resolversOrValues, argValues)
|
|
303
|
+
: functionObjectAll(resolversOrValues, argValues)
|
|
304
|
+
|
|
305
|
+
/*
|
|
306
|
+
////////////////////////////////////////////////////////////////
|
|
209
307
|
const funcs = args.pop()
|
|
210
308
|
if (args.length == 0) {
|
|
211
309
|
return isArray(funcs)
|
|
@@ -222,6 +320,7 @@ const all = function (...args) {
|
|
|
222
320
|
return isArray(funcs)
|
|
223
321
|
? functionArrayAll(funcs, args)
|
|
224
322
|
: functionObjectAll(funcs, args)
|
|
323
|
+
*/
|
|
225
324
|
}
|
|
226
325
|
|
|
227
326
|
all.series = function allSeries(...args) {
|
package/dist/all.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,areAnyValuesPromises=function(r){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1},promiseAll=Promise.all.bind(Promise),
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,areAnyValuesPromises=function(r){if(isArray(r)){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1}for(const n in r){const e=r[n];if(isPromise(e))return!0}return!1},areAllValuesNonfunctions=function(r){if(isArray(r)){const n=r.length;let e=-1;for(;++e<n;)if("function"==typeof r[e])return!1;return!0}for(const n in r)if("function"==typeof r[n])return!1;return!0},promiseAll=Promise.all.bind(Promise),promiseObjectAllExecutor=r=>function(n){const e={};let t=0;for(const o in r){const u=r[o];isPromise(u)?(t+=1,u.then((r=>function(o){e[r]=o,t-=1,0==t&&n(e)})(o))):e[o]=u}0==t&&n(e)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,n)=>function(e){return r(e,n)},curry2ResolveArg1=(r,n)=>function(e){return r(n,e)},curry2=function(r,n,e){return n==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,n)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},functionArrayAll=function(r,n){const e=r.length,t=Array(e);let o=-1,u=!1;for(;++o<e;){const e=r[o],s="function"==typeof e?e(...n):e;isPromise(s)&&(u=!0),t[o]=s}return u?promiseAll(t):t},funcConcat=(r,n)=>function(...e){const t=r(...e);return isPromise(t)?t.then(n):n(t)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curry4ResolveArg0=(r,n,e,t)=>function(o){return r(o,n,e,t)},curry4ResolveArg1=(r,n,e,t)=>function(o){return r(n,o,e,t)},curry4ResolveArg2=(r,n,e,t)=>function(o){return r(n,e,o,t)},curry4ResolveArg3=(r,n,e,t)=>function(o){return r(n,e,t,o)},curry4=function(r,n,e,t,o){return n==__?curry4ResolveArg0(r,e,t,o):e==__?curry4ResolveArg1(r,n,t,o):t==__?curry4ResolveArg2(r,n,e,o):curry4ResolveArg3(r,n,e,t)},objectSet=function(r,n,e){return r[n]=e,r},asyncFunctionArrayAllSeries=async function(r,n,e,t){const o=r.length;for(;++t<o;){const o=r[t](...n);e[t]=isPromise(o)?await o:o}return e},functionArrayAllSeries=function(r,n){const e=r.length,t=[];let o=-1;for(;++o<e;){const e=r[o](...n);if(isPromise(e))return e.then(funcConcat(curry3(objectSet,t,o,__),curry4(asyncFunctionArrayAllSeries,r,n,__,o)));t[o]=e}return t},always=r=>function(){return r},functionObjectAll=function(r,n){const e={},t=[];for(const o in r){const u=r[o],s="function"==typeof u?u(...n):u;isPromise(s)?t.push(s.then(curry3(objectSet,e,o,__))):e[o]=s}return 0==t.length?e:promiseAll(t).then(always(e))},_allValues=function(r){return isArray(r)?areAnyValuesPromises(r)?promiseAll(r):r:areAnyValuesPromises(r)?promiseObjectAll(r):r},all=function(...r){if(1==r.length){const n=r[0];return isPromise(n)?n.then(_allValues):areAllValuesNonfunctions(n)?_allValues(n):isArray(n)?curryArgs2(functionArrayAll,n,__):curryArgs2(functionObjectAll,n,__)}const n=r[r.length-1],e=r.slice(0,-1);return areAnyValuesPromises(e)?isArray(n)?promiseAll(e).then(curry2(functionArrayAll,n,__)):promiseAll(e).then(curry2(functionObjectAll,n,__)):isArray(n)?functionArrayAll(n,e):functionObjectAll(n,e)};all.series=function(...r){const n=r.pop();return 0==r.length?curryArgs2(functionArrayAllSeries,n,__):areAnyValuesPromises(r)?promiseAll(r).then(curry2(functionArrayAllSeries,n,__)):functionArrayAllSeries(n,r)};export default all;
|