rubico 2.6.5 → 2.7.0
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/Transducer.d.ts +1 -1
- package/Transducer.js +65 -16
- package/__.js +10 -1
- package/all.d.ts +2 -2
- package/all.js +11 -2
- package/always.js +8 -0
- package/and.js +6 -0
- package/assign.js +9 -0
- package/compose.js +33 -8
- package/curry.js +18 -0
- package/dist/Transducer.es.js +2 -2
- package/dist/Transducer.es.min.js +2 -2
- package/dist/Transducer.js +2 -2
- package/dist/Transducer.min.js +2 -2
- package/dist/Transducer.mjs +2 -2
- package/dist/__.es.js +2 -2
- package/dist/__.es.min.js +2 -2
- package/dist/__.js +2 -2
- package/dist/__.min.js +2 -2
- package/dist/__.mjs +2 -2
- package/dist/all.es.js +2 -22
- package/dist/all.es.min.js +2 -2
- package/dist/all.js +2 -22
- package/dist/all.min.js +2 -2
- package/dist/all.mjs +2 -22
- package/dist/always.es.js +2 -2
- package/dist/always.es.min.js +2 -2
- package/dist/always.js +2 -2
- package/dist/always.min.js +2 -2
- package/dist/always.mjs +2 -2
- package/dist/and.es.js +2 -2
- package/dist/and.es.min.js +2 -2
- package/dist/and.js +2 -2
- package/dist/and.min.js +2 -2
- package/dist/and.mjs +2 -2
- package/dist/assign.es.js +2 -2
- package/dist/assign.es.min.js +2 -2
- package/dist/assign.js +2 -2
- package/dist/assign.min.js +2 -2
- package/dist/assign.mjs +2 -2
- package/dist/compose.es.js +6 -2
- package/dist/compose.es.min.js +3 -3
- package/dist/compose.js +6 -2
- package/dist/compose.min.js +3 -3
- package/dist/compose.mjs +6 -2
- package/dist/curry.es.js +2 -2
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +2 -2
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +2 -2
- package/dist/eq.es.js +2 -2
- package/dist/eq.es.min.js +2 -2
- package/dist/eq.js +2 -2
- package/dist/eq.min.js +2 -2
- package/dist/eq.mjs +2 -2
- package/dist/every.es.js +2 -2
- package/dist/every.es.min.js +2 -2
- package/dist/every.js +2 -2
- package/dist/every.min.js +2 -2
- package/dist/every.mjs +2 -2
- package/dist/filter.es.js +5 -3
- package/dist/filter.es.min.js +3 -3
- package/dist/filter.js +5 -3
- package/dist/filter.min.js +3 -3
- package/dist/filter.mjs +5 -3
- package/dist/flatMap.es.js +2 -2
- package/dist/flatMap.es.min.js +2 -2
- package/dist/flatMap.js +2 -2
- package/dist/flatMap.min.js +2 -2
- package/dist/flatMap.mjs +2 -2
- package/dist/forEach.es.js +2 -2
- package/dist/forEach.es.min.js +2 -2
- package/dist/forEach.js +2 -2
- package/dist/forEach.min.js +2 -2
- package/dist/forEach.mjs +2 -2
- package/dist/get.es.js +2 -2
- package/dist/get.es.min.js +2 -2
- package/dist/get.js +2 -2
- package/dist/get.min.js +2 -2
- package/dist/get.mjs +2 -2
- package/dist/gt.es.js +2 -2
- package/dist/gt.es.min.js +2 -2
- package/dist/gt.js +2 -2
- package/dist/gt.min.js +2 -2
- package/dist/gt.mjs +2 -2
- package/dist/gte.es.js +2 -2
- package/dist/gte.es.min.js +2 -2
- package/dist/gte.js +2 -2
- package/dist/gte.min.js +2 -2
- package/dist/gte.mjs +2 -2
- package/dist/lt.es.js +2 -2
- package/dist/lt.es.min.js +2 -2
- package/dist/lt.js +2 -2
- package/dist/lt.min.js +2 -2
- package/dist/lt.mjs +2 -2
- package/dist/lte.es.js +2 -2
- package/dist/lte.es.min.js +2 -2
- package/dist/lte.js +2 -2
- package/dist/lte.min.js +2 -2
- package/dist/lte.mjs +2 -2
- package/dist/map.es.js +31 -31
- package/dist/map.es.min.js +3 -3
- package/dist/map.js +31 -31
- package/dist/map.min.js +3 -3
- package/dist/map.mjs +31 -31
- package/dist/not.es.js +2 -2
- package/dist/not.es.min.js +2 -2
- package/dist/not.js +2 -2
- package/dist/not.min.js +2 -2
- package/dist/not.mjs +2 -2
- package/dist/omit.es.js +2 -2
- package/dist/omit.es.min.js +2 -2
- package/dist/omit.js +2 -2
- package/dist/omit.min.js +2 -2
- package/dist/omit.mjs +2 -2
- package/dist/or.es.js +2 -2
- package/dist/or.es.min.js +2 -2
- package/dist/or.js +2 -2
- package/dist/or.min.js +2 -2
- package/dist/or.mjs +2 -2
- package/dist/pick.es.js +2 -2
- package/dist/pick.es.min.js +2 -2
- package/dist/pick.js +2 -2
- package/dist/pick.min.js +2 -2
- package/dist/pick.mjs +2 -2
- package/dist/pipe.es.js +6 -2
- package/dist/pipe.es.min.js +3 -3
- package/dist/pipe.js +6 -2
- package/dist/pipe.min.js +3 -3
- package/dist/pipe.mjs +6 -2
- package/dist/reduce.es.js +9 -9
- package/dist/reduce.es.min.js +2 -2
- package/dist/reduce.js +9 -9
- package/dist/reduce.min.js +2 -2
- package/dist/reduce.mjs +9 -9
- package/dist/rubico.es.js +49 -59
- package/dist/rubico.es.min.js +3 -3
- package/dist/rubico.global.js +49 -59
- package/dist/rubico.global.min.js +3 -3
- package/dist/rubico.js +49 -59
- package/dist/rubico.min.js +3 -3
- package/dist/rubico.mjs +49 -59
- package/dist/set.es.js +2 -2
- package/dist/set.es.min.js +2 -2
- package/dist/set.js +2 -2
- package/dist/set.min.js +2 -2
- package/dist/set.mjs +2 -2
- package/dist/some.es.js +2 -2
- package/dist/some.es.min.js +2 -2
- package/dist/some.js +2 -2
- package/dist/some.min.js +2 -2
- package/dist/some.mjs +2 -2
- package/dist/switchCase.es.js +2 -2
- package/dist/switchCase.es.min.js +2 -2
- package/dist/switchCase.js +2 -2
- package/dist/switchCase.min.js +2 -2
- package/dist/switchCase.mjs +2 -2
- package/dist/tap.es.js +2 -2
- package/dist/tap.es.min.js +2 -2
- package/dist/tap.js +2 -2
- package/dist/tap.min.js +2 -2
- package/dist/tap.mjs +2 -2
- package/dist/thunkify.es.js +2 -2
- package/dist/thunkify.es.min.js +2 -2
- package/dist/thunkify.js +2 -2
- package/dist/thunkify.min.js +2 -2
- package/dist/thunkify.mjs +2 -2
- package/dist/transform.es.js +2 -2
- package/dist/transform.es.min.js +2 -2
- package/dist/transform.js +2 -2
- package/dist/transform.min.js +2 -2
- package/dist/transform.mjs +2 -2
- package/dist/tryCatch.es.js +2 -2
- package/dist/tryCatch.es.min.js +2 -2
- package/dist/tryCatch.js +2 -2
- package/dist/tryCatch.min.js +2 -2
- package/dist/tryCatch.mjs +2 -2
- package/dist/x/append.es.js +2 -2
- package/dist/x/append.es.min.js +2 -2
- package/dist/x/append.js +2 -2
- package/dist/x/append.min.js +2 -2
- package/dist/x/append.mjs +2 -2
- package/dist/x/callProp.es.js +2 -2
- package/dist/x/callProp.es.min.js +2 -2
- package/dist/x/callProp.js +2 -2
- package/dist/x/callProp.min.js +2 -2
- package/dist/x/callProp.mjs +2 -2
- package/dist/x/defaultsDeep.es.js +2 -2
- package/dist/x/defaultsDeep.es.min.js +2 -2
- package/dist/x/defaultsDeep.js +2 -2
- package/dist/x/defaultsDeep.min.js +2 -2
- package/dist/x/defaultsDeep.mjs +2 -2
- package/dist/x/differenceWith.es.js +2 -2
- package/dist/x/differenceWith.es.min.js +2 -2
- package/dist/x/differenceWith.js +2 -2
- package/dist/x/differenceWith.min.js +2 -2
- package/dist/x/differenceWith.mjs +2 -2
- package/dist/x/filterOut.es.js +5 -3
- package/dist/x/filterOut.es.min.js +3 -3
- package/dist/x/filterOut.js +5 -3
- package/dist/x/filterOut.min.js +3 -3
- package/dist/x/filterOut.mjs +5 -3
- package/dist/x/find.es.js +2 -2
- package/dist/x/find.es.min.js +2 -2
- package/dist/x/find.js +2 -2
- package/dist/x/find.min.js +2 -2
- package/dist/x/find.mjs +2 -2
- package/dist/x/findIndex.es.js +2 -2
- package/dist/x/findIndex.es.min.js +2 -2
- package/dist/x/findIndex.js +2 -2
- package/dist/x/findIndex.min.js +2 -2
- package/dist/x/findIndex.mjs +2 -2
- package/dist/x/first.es.js +2 -2
- package/dist/x/first.es.min.js +2 -2
- package/dist/x/first.js +2 -2
- package/dist/x/first.min.js +2 -2
- package/dist/x/first.mjs +2 -2
- package/dist/x/flatten.es.js +2 -2
- package/dist/x/flatten.es.min.js +2 -2
- package/dist/x/flatten.js +2 -2
- package/dist/x/flatten.min.js +2 -2
- package/dist/x/flatten.mjs +2 -2
- package/dist/x/groupBy.es.js +9 -9
- package/dist/x/groupBy.es.min.js +2 -2
- package/dist/x/groupBy.js +9 -9
- package/dist/x/groupBy.min.js +2 -2
- package/dist/x/groupBy.mjs +9 -9
- package/dist/x/has.es.js +2 -2
- package/dist/x/has.es.min.js +2 -2
- package/dist/x/has.js +2 -2
- package/dist/x/has.min.js +2 -2
- package/dist/x/has.mjs +2 -2
- package/dist/x/identity.es.js +2 -2
- package/dist/x/identity.es.min.js +2 -2
- package/dist/x/identity.js +2 -2
- package/dist/x/identity.min.js +2 -2
- package/dist/x/identity.mjs +2 -2
- package/dist/x/includes.es.js +2 -2
- package/dist/x/includes.es.min.js +2 -2
- package/dist/x/includes.js +2 -2
- package/dist/x/includes.min.js +2 -2
- package/dist/x/includes.mjs +2 -2
- package/dist/x/isDeepEqual.es.js +2 -2
- package/dist/x/isDeepEqual.es.min.js +2 -2
- package/dist/x/isDeepEqual.js +2 -2
- package/dist/x/isDeepEqual.min.js +2 -2
- package/dist/x/isDeepEqual.mjs +2 -2
- package/dist/x/isEmpty.es.js +2 -2
- package/dist/x/isEmpty.es.min.js +2 -2
- package/dist/x/isEmpty.js +2 -2
- package/dist/x/isEmpty.min.js +2 -2
- package/dist/x/isEmpty.mjs +2 -2
- package/dist/x/isEqual.es.js +2 -2
- package/dist/x/isEqual.es.min.js +2 -2
- package/dist/x/isEqual.js +2 -2
- package/dist/x/isEqual.min.js +2 -2
- package/dist/x/isEqual.mjs +2 -2
- package/dist/x/isFunction.es.js +2 -2
- package/dist/x/isFunction.es.min.js +2 -2
- package/dist/x/isFunction.js +2 -2
- package/dist/x/isFunction.min.js +2 -2
- package/dist/x/isFunction.mjs +2 -2
- package/dist/x/isIn.es.js +2 -2
- package/dist/x/isIn.es.min.js +2 -2
- package/dist/x/isIn.js +2 -2
- package/dist/x/isIn.min.js +2 -2
- package/dist/x/isIn.mjs +2 -2
- package/dist/x/isObject.es.js +2 -2
- package/dist/x/isObject.es.min.js +2 -2
- package/dist/x/isObject.js +2 -2
- package/dist/x/isObject.min.js +2 -2
- package/dist/x/isObject.mjs +2 -2
- package/dist/x/isString.es.js +2 -2
- package/dist/x/isString.es.min.js +2 -2
- package/dist/x/isString.js +2 -2
- package/dist/x/isString.min.js +2 -2
- package/dist/x/isString.mjs +2 -2
- package/dist/x/keys.es.js +2 -2
- package/dist/x/keys.es.min.js +2 -2
- package/dist/x/keys.js +2 -2
- package/dist/x/keys.min.js +2 -2
- package/dist/x/keys.mjs +2 -2
- package/dist/x/last.es.js +2 -2
- package/dist/x/last.es.min.js +2 -2
- package/dist/x/last.js +2 -2
- package/dist/x/last.min.js +2 -2
- package/dist/x/last.mjs +2 -2
- package/dist/x/maxBy.es.js +2 -2
- package/dist/x/maxBy.es.min.js +2 -2
- package/dist/x/maxBy.js +2 -2
- package/dist/x/maxBy.min.js +2 -2
- package/dist/x/maxBy.mjs +2 -2
- package/dist/x/noop.es.js +2 -2
- package/dist/x/noop.es.min.js +2 -2
- package/dist/x/noop.js +2 -2
- package/dist/x/noop.min.js +2 -2
- package/dist/x/noop.mjs +2 -2
- package/dist/x/pluck.es.js +31 -31
- package/dist/x/pluck.es.min.js +3 -3
- package/dist/x/pluck.js +31 -31
- package/dist/x/pluck.min.js +3 -3
- package/dist/x/pluck.mjs +31 -31
- package/dist/x/prepend.es.js +2 -2
- package/dist/x/prepend.es.min.js +2 -2
- package/dist/x/prepend.js +2 -2
- package/dist/x/prepend.min.js +2 -2
- package/dist/x/prepend.mjs +2 -2
- package/dist/x/size.es.js +2 -2
- package/dist/x/size.es.min.js +2 -2
- package/dist/x/size.js +2 -2
- package/dist/x/size.min.js +2 -2
- package/dist/x/size.mjs +2 -2
- package/dist/x/trace.es.js +2 -2
- package/dist/x/trace.es.min.js +2 -2
- package/dist/x/trace.js +2 -2
- package/dist/x/trace.min.js +2 -2
- package/dist/x/trace.mjs +2 -2
- package/dist/x/unionWith.es.js +2 -2
- package/dist/x/unionWith.es.min.js +2 -2
- package/dist/x/unionWith.js +2 -2
- package/dist/x/unionWith.min.js +2 -2
- package/dist/x/unionWith.mjs +2 -2
- package/dist/x/uniq.es.js +2 -2
- package/dist/x/uniq.es.min.js +2 -2
- package/dist/x/uniq.js +2 -2
- package/dist/x/uniq.min.js +2 -2
- package/dist/x/uniq.mjs +2 -2
- package/dist/x/unless.es.js +2 -2
- package/dist/x/unless.es.min.js +2 -2
- package/dist/x/unless.js +2 -2
- package/dist/x/unless.min.js +2 -2
- package/dist/x/unless.mjs +2 -2
- package/dist/x/values.es.js +2 -2
- package/dist/x/values.es.min.js +2 -2
- package/dist/x/values.js +2 -2
- package/dist/x/values.min.js +2 -2
- package/dist/x/values.mjs +2 -2
- package/dist/x/when.es.js +2 -2
- package/dist/x/when.es.min.js +2 -2
- package/dist/x/when.js +2 -2
- package/dist/x/when.min.js +2 -2
- package/dist/x/when.mjs +2 -2
- package/eq.d.ts +6 -6
- package/eq.js +14 -6
- package/es.js +49 -59
- package/every.js +19 -5
- package/filter.js +87 -47
- package/flatMap.js +38 -32
- package/forEach.js +107 -13
- package/get.js +9 -0
- package/gt.js +9 -0
- package/gte.js +9 -0
- package/index.js +49 -59
- package/lte.js +9 -0
- package/map.js +198 -103
- package/not.js +7 -0
- package/omit.d.ts +2 -2
- package/omit.js +11 -2
- package/or.js +6 -0
- package/package.json +1 -3
- package/pick.js +9 -0
- package/pipe.js +30 -3
- package/reduce.js +132 -89
- package/set.js +9 -0
- package/some.js +17 -3
- package/switchCase.js +6 -0
- package/tap.js +14 -0
- package/thunkify.js +8 -0
- package/transform.js +112 -44
- package/tryCatch.js +5 -0
- package/x/append.js +3 -0
- package/x/callProp.js +5 -0
- package/x/defaultsDeep.d.ts +2 -2
- package/x/defaultsDeep.js +7 -2
- package/x/differenceWith.js +5 -0
- package/x/find.d.ts +2 -2
- package/x/find.js +2 -2
- package/x/groupBy.d.ts +2 -2
- package/x/groupBy.js +2 -2
- package/x/pluck.d.ts +2 -2
- package/x/pluck.js +2 -2
- package/x/unionWith.test.js +3 -3
package/dist/x/values.es.js
CHANGED
package/dist/x/values.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.7.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2025 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const objectValues=Object.values,values=e=>null==e?[]:"function"==typeof e.values?[...e.values()]:objectValues(e);export default values;
|
package/dist/x/values.js
CHANGED
package/dist/x/values.min.js
CHANGED
package/dist/x/values.mjs
CHANGED
package/dist/x/when.es.js
CHANGED
package/dist/x/when.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.7.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2025 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},__=Symbol.for("placeholder"),thunkify1=(r,n)=>function(){return r(n)},curry3ResolveArg0=(r,n,e)=>function(u){return r(u,n,e)},curry3ResolveArg1=(r,n,e)=>function(u){return r(n,u,e)},curry3ResolveArg2=(r,n,e)=>function(u){return r(n,e,u)},curry3=function(r,n,e,u){return n==__?curry3ResolveArg0(r,e,u):e==__?curry3ResolveArg1(r,n,u):curry3ResolveArg2(r,n,e)},thunkConditional=(r,n,e)=>r?n():e(),when=(r,n)=>function(e){const u=r(e);return isPromise(u)?u.then(curry3(thunkConditional,__,thunkify1(n,e),always(e))):u?n(e):e};export default when;
|
package/dist/x/when.js
CHANGED
package/dist/x/when.min.js
CHANGED
package/dist/x/when.mjs
CHANGED
package/eq.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export = eq;
|
|
|
20
20
|
* Test for [equality (`==`)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality) between two values.
|
|
21
21
|
*
|
|
22
22
|
* ```javascript [playground]
|
|
23
|
-
* const areNamesEqual = eq('Ted', '
|
|
23
|
+
* const areNamesEqual = eq('Ted', 'John')
|
|
24
24
|
*
|
|
25
25
|
* console.log(areNamesEqual) // false
|
|
26
26
|
* ```
|
|
@@ -28,11 +28,11 @@ export = eq;
|
|
|
28
28
|
* If either of the two values are resolver functions, `eq` returns a function that resolves the values to compare from its arguments.
|
|
29
29
|
*
|
|
30
30
|
* ```javascript [playground]
|
|
31
|
-
* const
|
|
31
|
+
* const personIsJohn = eq(get('name'), 'John')
|
|
32
32
|
*
|
|
33
|
-
* const person = { name: '
|
|
33
|
+
* const person = { name: 'John', likes: 'bananas' }
|
|
34
34
|
*
|
|
35
|
-
* if (
|
|
35
|
+
* if (personIsJohn(person)) {
|
|
36
36
|
* console.log('The person is george')
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
@@ -40,8 +40,8 @@ export = eq;
|
|
|
40
40
|
* `eq` supports a lazy API for composability.
|
|
41
41
|
*
|
|
42
42
|
* ```javascript [playground]
|
|
43
|
-
* pipe({ name: '
|
|
44
|
-
* eq('
|
|
43
|
+
* pipe({ name: 'John' }, [
|
|
44
|
+
* eq('John', get('name')),
|
|
45
45
|
* console.log, // true
|
|
46
46
|
* ])
|
|
47
47
|
* ```
|
package/eq.js
CHANGED
|
@@ -22,7 +22,7 @@ const equals = require('./_internal/equals')
|
|
|
22
22
|
* Test for [equality (`==`)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality) between two values.
|
|
23
23
|
*
|
|
24
24
|
* ```javascript [playground]
|
|
25
|
-
* const areNamesEqual = eq('Ted', '
|
|
25
|
+
* const areNamesEqual = eq('Ted', 'John')
|
|
26
26
|
*
|
|
27
27
|
* console.log(areNamesEqual) // false
|
|
28
28
|
* ```
|
|
@@ -30,11 +30,11 @@ const equals = require('./_internal/equals')
|
|
|
30
30
|
* If either of the two values are resolver functions, `eq` returns a function that resolves the values to compare from its arguments.
|
|
31
31
|
*
|
|
32
32
|
* ```javascript [playground]
|
|
33
|
-
* const
|
|
33
|
+
* const personIsJohn = eq(get('name'), 'John')
|
|
34
34
|
*
|
|
35
|
-
* const person = { name: '
|
|
35
|
+
* const person = { name: 'John', likes: 'bananas' }
|
|
36
36
|
*
|
|
37
|
-
* if (
|
|
37
|
+
* if (personIsJohn(person)) {
|
|
38
38
|
* console.log('The person is george')
|
|
39
39
|
* }
|
|
40
40
|
* ```
|
|
@@ -42,8 +42,8 @@ const equals = require('./_internal/equals')
|
|
|
42
42
|
* `eq` supports a lazy API for composability.
|
|
43
43
|
*
|
|
44
44
|
* ```javascript [playground]
|
|
45
|
-
* pipe({ name: '
|
|
46
|
-
* eq('
|
|
45
|
+
* pipe({ name: 'John' }, [
|
|
46
|
+
* eq('John', get('name')),
|
|
47
47
|
* console.log, // true
|
|
48
48
|
* ])
|
|
49
49
|
* ```
|
|
@@ -54,6 +54,14 @@ const equals = require('./_internal/equals')
|
|
|
54
54
|
* eq(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
|
|
55
55
|
* ```
|
|
56
56
|
*
|
|
57
|
+
* See also:
|
|
58
|
+
* * [and](/docs/and)
|
|
59
|
+
* * [gt](/docs/gt)
|
|
60
|
+
* * [lt](/docs/lt)
|
|
61
|
+
* * [gte](/docs/gte)
|
|
62
|
+
* * [lte](/docs/lte)
|
|
63
|
+
* * [thunkify](/docs/thunkify)
|
|
64
|
+
*
|
|
57
65
|
* @execution concurrent
|
|
58
66
|
*/
|
|
59
67
|
|
package/es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.7.0
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
|
-
* (c) 2019-
|
|
4
|
+
* (c) 2019-2025 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
@@ -67,6 +67,10 @@ const curry2 = function (baseFunc, arg0, arg1) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
const pipe = function (...args) {
|
|
70
|
+
if (typeof args[0] == 'function') {
|
|
71
|
+
return args.reduce(funcConcat)
|
|
72
|
+
}
|
|
73
|
+
|
|
70
74
|
const funcs = args.pop()
|
|
71
75
|
const pipeline = funcs.reduce(funcConcat)
|
|
72
76
|
|
|
@@ -82,6 +86,10 @@ const pipe = function (...args) {
|
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
const compose = function (...args) {
|
|
89
|
+
if (typeof args[0] == 'function') {
|
|
90
|
+
return args.reduceRight(funcConcat)
|
|
91
|
+
}
|
|
92
|
+
|
|
85
93
|
const funcs = args.pop()
|
|
86
94
|
const composition = funcs.reduceRight(funcConcat)
|
|
87
95
|
|
|
@@ -423,26 +431,6 @@ const all = function (...args) {
|
|
|
423
431
|
return isArray(resolversOrValues)
|
|
424
432
|
? functionArrayAll(resolversOrValues, argValues)
|
|
425
433
|
: functionObjectAll(resolversOrValues, argValues)
|
|
426
|
-
|
|
427
|
-
/*
|
|
428
|
-
////////////////////////////////////////////////////////////////
|
|
429
|
-
const funcs = args.pop()
|
|
430
|
-
if (args.length == 0) {
|
|
431
|
-
return isArray(funcs)
|
|
432
|
-
? curryArgs2(functionArrayAll, funcs, __)
|
|
433
|
-
: curryArgs2(functionObjectAll, funcs, __)
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
if (areAnyValuesPromises(args)) {
|
|
437
|
-
return isArray(funcs)
|
|
438
|
-
? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
|
|
439
|
-
: promiseAll(args).then(curry2(functionObjectAll, funcs, __))
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
return isArray(funcs)
|
|
443
|
-
? functionArrayAll(funcs, args)
|
|
444
|
-
: functionObjectAll(funcs, args)
|
|
445
|
-
*/
|
|
446
434
|
}
|
|
447
435
|
|
|
448
436
|
all.series = function allSeries(...args) {
|
|
@@ -1173,39 +1161,39 @@ const mapMapEntries = function (source, mapper) {
|
|
|
1173
1161
|
: promiseAll(promises).then(always(result))
|
|
1174
1162
|
}
|
|
1175
1163
|
|
|
1176
|
-
const _map = function (value,
|
|
1164
|
+
const _map = function (value, f) {
|
|
1177
1165
|
if (isArray(value)) {
|
|
1178
|
-
return arrayMap(value,
|
|
1166
|
+
return arrayMap(value, f)
|
|
1179
1167
|
}
|
|
1180
1168
|
if (value == null) {
|
|
1181
1169
|
return value
|
|
1182
1170
|
}
|
|
1183
1171
|
|
|
1184
1172
|
if (typeof value.then == 'function') {
|
|
1185
|
-
return value.then(
|
|
1173
|
+
return value.then(f)
|
|
1186
1174
|
}
|
|
1187
1175
|
if (typeof value.map == 'function') {
|
|
1188
|
-
return value.map(
|
|
1176
|
+
return value.map(f)
|
|
1189
1177
|
}
|
|
1190
1178
|
if (typeof value == 'string' || value.constructor == String) {
|
|
1191
|
-
return stringMap(value,
|
|
1179
|
+
return stringMap(value, f)
|
|
1192
1180
|
}
|
|
1193
1181
|
if (value.constructor == Set) {
|
|
1194
|
-
return setMap(value,
|
|
1182
|
+
return setMap(value, f)
|
|
1195
1183
|
}
|
|
1196
1184
|
if (value.constructor == Map) {
|
|
1197
|
-
return mapMap(value,
|
|
1185
|
+
return mapMap(value, f)
|
|
1198
1186
|
}
|
|
1199
1187
|
if (typeof value[symbolIterator] == 'function') {
|
|
1200
|
-
return MappingIterator(value[symbolIterator](),
|
|
1188
|
+
return MappingIterator(value[symbolIterator](), f)
|
|
1201
1189
|
}
|
|
1202
1190
|
if (typeof value[symbolAsyncIterator] == 'function') {
|
|
1203
|
-
return MappingAsyncIterator(value[symbolAsyncIterator](),
|
|
1191
|
+
return MappingAsyncIterator(value[symbolAsyncIterator](), f)
|
|
1204
1192
|
}
|
|
1205
1193
|
if (value.constructor == Object) {
|
|
1206
|
-
return objectMap(value,
|
|
1194
|
+
return objectMap(value, f)
|
|
1207
1195
|
}
|
|
1208
|
-
return
|
|
1196
|
+
return f(value)
|
|
1209
1197
|
}
|
|
1210
1198
|
|
|
1211
1199
|
const map = function (arg0, arg1) {
|
|
@@ -1217,16 +1205,16 @@ const map = function (arg0, arg1) {
|
|
|
1217
1205
|
: _map(arg0, arg1)
|
|
1218
1206
|
}
|
|
1219
1207
|
|
|
1220
|
-
// _mapEntries(value Object|Map,
|
|
1221
|
-
const _mapEntries = (value,
|
|
1208
|
+
// _mapEntries(value Object|Map, f function) -> Object|Map
|
|
1209
|
+
const _mapEntries = (value, f) => {
|
|
1222
1210
|
if (value == null) {
|
|
1223
1211
|
throw new TypeError('value is not an Object or Map')
|
|
1224
1212
|
}
|
|
1225
1213
|
if (value.constructor == Object) {
|
|
1226
|
-
return objectMapEntries(value,
|
|
1214
|
+
return objectMapEntries(value, f)
|
|
1227
1215
|
}
|
|
1228
1216
|
if (value.constructor == Map) {
|
|
1229
|
-
return mapMapEntries(value,
|
|
1217
|
+
return mapMapEntries(value, f)
|
|
1230
1218
|
}
|
|
1231
1219
|
throw new TypeError('value is not an Object or Map')
|
|
1232
1220
|
}
|
|
@@ -1272,26 +1260,26 @@ map.series = function mapSeries(arg0, arg1) {
|
|
|
1272
1260
|
: _mapSeries(arg0, arg1)
|
|
1273
1261
|
}
|
|
1274
1262
|
|
|
1275
|
-
const _mapPool = function (
|
|
1276
|
-
if (isArray(
|
|
1277
|
-
return arrayMapPool(
|
|
1263
|
+
const _mapPool = function (f, concurrency, mapper) {
|
|
1264
|
+
if (isArray(f)) {
|
|
1265
|
+
return arrayMapPool(f, concurrency, mapper)
|
|
1278
1266
|
}
|
|
1279
|
-
if (
|
|
1280
|
-
throw new TypeError(`invalid
|
|
1267
|
+
if (f == null) {
|
|
1268
|
+
throw new TypeError(`invalid functor ${f}`)
|
|
1281
1269
|
}
|
|
1282
|
-
if (typeof
|
|
1283
|
-
return stringMapPool(
|
|
1270
|
+
if (typeof f == 'string' || f.constructor == String) {
|
|
1271
|
+
return stringMapPool(f, concurrency, mapper)
|
|
1284
1272
|
}
|
|
1285
|
-
if (
|
|
1286
|
-
return setMapPool(
|
|
1273
|
+
if (f.constructor == Set) {
|
|
1274
|
+
return setMapPool(f, concurrency, mapper)
|
|
1287
1275
|
}
|
|
1288
|
-
if (
|
|
1289
|
-
return mapMapPool(
|
|
1276
|
+
if (f.constructor == Map) {
|
|
1277
|
+
return mapMapPool(f, concurrency, mapper)
|
|
1290
1278
|
}
|
|
1291
|
-
if (
|
|
1292
|
-
return objectMapPool(
|
|
1279
|
+
if (f.constructor == Object) {
|
|
1280
|
+
return objectMapPool(f, concurrency, mapper)
|
|
1293
1281
|
}
|
|
1294
|
-
throw new TypeError(`invalid
|
|
1282
|
+
throw new TypeError(`invalid functor ${f}`)
|
|
1295
1283
|
}
|
|
1296
1284
|
|
|
1297
1285
|
map.pool = function mapPool(arg0, arg1, arg2) {
|
|
@@ -1496,7 +1484,9 @@ const filter = function (arg0, arg1) {
|
|
|
1496
1484
|
if (typeof arg0 == 'function') {
|
|
1497
1485
|
return curry2(_filter, __, arg0)
|
|
1498
1486
|
}
|
|
1499
|
-
return
|
|
1487
|
+
return isPromise(arg0)
|
|
1488
|
+
? arg0.then(curry2(_filter, __, arg1))
|
|
1489
|
+
: _filter(arg0, arg1)
|
|
1500
1490
|
}
|
|
1501
1491
|
|
|
1502
1492
|
const objectValues = Object.values
|
|
@@ -1757,17 +1747,17 @@ const genericReduce = function (collection, reducer, result) {
|
|
|
1757
1747
|
: reducer(result, collection)
|
|
1758
1748
|
}
|
|
1759
1749
|
|
|
1760
|
-
// _reduce(collection any, reducer function,
|
|
1761
|
-
const _reduce = function (collection, reducer,
|
|
1762
|
-
if (typeof
|
|
1763
|
-
const actualInitialValue =
|
|
1750
|
+
// _reduce(collection any, reducer function, initial function|any) -> Promise
|
|
1751
|
+
const _reduce = function (collection, reducer, initial) {
|
|
1752
|
+
if (typeof initial == 'function') {
|
|
1753
|
+
const actualInitialValue = initial(collection)
|
|
1764
1754
|
return isPromise(actualInitialValue)
|
|
1765
1755
|
? actualInitialValue.then(curry3(genericReduce, collection, reducer, __))
|
|
1766
1756
|
: genericReduce(collection, reducer, actualInitialValue)
|
|
1767
1757
|
}
|
|
1768
|
-
return isPromise(
|
|
1769
|
-
?
|
|
1770
|
-
: genericReduce(collection, reducer,
|
|
1758
|
+
return isPromise(initial)
|
|
1759
|
+
? initial.then(curry3(genericReduce, collection, reducer, __))
|
|
1760
|
+
: genericReduce(collection, reducer, initial)
|
|
1771
1761
|
}
|
|
1772
1762
|
|
|
1773
1763
|
const reduce = function (...args) {
|
package/every.js
CHANGED
|
@@ -41,15 +41,15 @@ const _every = function (collection, predicate) {
|
|
|
41
41
|
*
|
|
42
42
|
* @synopsis
|
|
43
43
|
* ```coffeescript [specscript]
|
|
44
|
-
* type Foldable = Array|
|
|
44
|
+
* type Foldable = Array|Set|Map|Generator|AsyncGenerator|{ reduce: function }|Object
|
|
45
45
|
*
|
|
46
|
-
* every(
|
|
46
|
+
* every(fold Foldable, predicate function) -> result Promise|boolean
|
|
47
47
|
*
|
|
48
|
-
* every(predicate function)(
|
|
48
|
+
* every(predicate function)(fold Foldable) -> result Promise|boolean
|
|
49
49
|
* ```
|
|
50
50
|
*
|
|
51
51
|
* @description
|
|
52
|
-
* Test a predicate concurrently across all items of a
|
|
52
|
+
* Test a predicate concurrently across all items of a foldable, returning true if all executions return true.
|
|
53
53
|
*
|
|
54
54
|
* ```javascript [playground]
|
|
55
55
|
* const isOdd = number => number % 2 == 1
|
|
@@ -63,7 +63,16 @@ const _every = function (collection, predicate) {
|
|
|
63
63
|
* ) // true
|
|
64
64
|
* ```
|
|
65
65
|
*
|
|
66
|
-
* The
|
|
66
|
+
* The following data types are considered to be foldables:
|
|
67
|
+
* * `array`
|
|
68
|
+
* * `set`
|
|
69
|
+
* * `map`
|
|
70
|
+
* * `generator`
|
|
71
|
+
* * `async generator`
|
|
72
|
+
* * `object with .reduce method`
|
|
73
|
+
* * `object`
|
|
74
|
+
*
|
|
75
|
+
* `every` works for async generators.
|
|
67
76
|
*
|
|
68
77
|
* ```javascript [playground]
|
|
69
78
|
* const asyncNumbers = async function* () {
|
|
@@ -88,6 +97,11 @@ const _every = function (collection, predicate) {
|
|
|
88
97
|
* every(Promise.resolve([1, 2, 3, 4, 5]), n => n < 6).then(console.log) // true
|
|
89
98
|
* ```
|
|
90
99
|
*
|
|
100
|
+
* See also:
|
|
101
|
+
* * [map](/docs/map)
|
|
102
|
+
* * [some](/docs/some)
|
|
103
|
+
* * [and](/docs/and)
|
|
104
|
+
*
|
|
91
105
|
* @execution concurrent
|
|
92
106
|
*
|
|
93
107
|
* @muxing
|