rambda 10.3.3 → 10.3.4
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/CHANGELOG.md +12 -0
- package/README.md +226 -144
- package/dist/rambda.cjs +12 -2
- package/dist/rambda.js +12 -2
- package/dist/rambda.umd.js +12 -2
- package/index.d.cts +16 -9
- package/index.d.ts +16 -9
- package/package.json +9 -8
- package/src/mapParallelAsync.js +12 -2
package/dist/rambda.cjs
CHANGED
|
@@ -1044,8 +1044,18 @@ function mapObjectAsync(fn) {
|
|
|
1044
1044
|
}
|
|
1045
1045
|
}
|
|
1046
1046
|
|
|
1047
|
-
function mapParallelAsync(fn)
|
|
1048
|
-
|
|
1047
|
+
function mapParallelAsync(fn, batchSize){
|
|
1048
|
+
if(!batchSize) return async list => Promise.all(list.map(fn))
|
|
1049
|
+
|
|
1050
|
+
return async list => {
|
|
1051
|
+
const result = [];
|
|
1052
|
+
for(let i = 0; i < list.length; i += batchSize){
|
|
1053
|
+
const batch = list.slice(i, i + batchSize);
|
|
1054
|
+
const batchResult = await Promise.all(batch.map((x, j) => fn(x, i + j)));
|
|
1055
|
+
result.push(...batchResult);
|
|
1056
|
+
}
|
|
1057
|
+
return result
|
|
1058
|
+
}
|
|
1049
1059
|
}
|
|
1050
1060
|
|
|
1051
1061
|
function mapPropObject(fn, prop) {
|
package/dist/rambda.js
CHANGED
|
@@ -1042,8 +1042,18 @@ function mapObjectAsync(fn) {
|
|
|
1042
1042
|
}
|
|
1043
1043
|
}
|
|
1044
1044
|
|
|
1045
|
-
function mapParallelAsync(fn)
|
|
1046
|
-
|
|
1045
|
+
function mapParallelAsync(fn, batchSize){
|
|
1046
|
+
if(!batchSize) return async list => Promise.all(list.map(fn))
|
|
1047
|
+
|
|
1048
|
+
return async list => {
|
|
1049
|
+
const result = [];
|
|
1050
|
+
for(let i = 0; i < list.length; i += batchSize){
|
|
1051
|
+
const batch = list.slice(i, i + batchSize);
|
|
1052
|
+
const batchResult = await Promise.all(batch.map((x, j) => fn(x, i + j)));
|
|
1053
|
+
result.push(...batchResult);
|
|
1054
|
+
}
|
|
1055
|
+
return result
|
|
1056
|
+
}
|
|
1047
1057
|
}
|
|
1048
1058
|
|
|
1049
1059
|
function mapPropObject(fn, prop) {
|
package/dist/rambda.umd.js
CHANGED
|
@@ -1048,8 +1048,18 @@
|
|
|
1048
1048
|
}
|
|
1049
1049
|
}
|
|
1050
1050
|
|
|
1051
|
-
function mapParallelAsync(fn)
|
|
1052
|
-
|
|
1051
|
+
function mapParallelAsync(fn, batchSize){
|
|
1052
|
+
if(!batchSize) return async list => Promise.all(list.map(fn))
|
|
1053
|
+
|
|
1054
|
+
return async list => {
|
|
1055
|
+
const result = [];
|
|
1056
|
+
for(let i = 0; i < list.length; i += batchSize){
|
|
1057
|
+
const batch = list.slice(i, i + batchSize);
|
|
1058
|
+
const batchResult = await Promise.all(batch.map((x, j) => fn(x, i + j)));
|
|
1059
|
+
result.push(...batchResult);
|
|
1060
|
+
}
|
|
1061
|
+
return result
|
|
1062
|
+
}
|
|
1053
1063
|
}
|
|
1054
1064
|
|
|
1055
1065
|
function mapPropObject(fn, prop) {
|
package/index.d.cts
CHANGED
|
@@ -547,23 +547,30 @@ export function mapObjectAsync<T extends object, Value>(
|
|
|
547
547
|
|
|
548
548
|
/**
|
|
549
549
|
* Wrapper around `Promise.all` for asynchronous mapping with `fn` over members of `list`.
|
|
550
|
+
* There is optional `batchSize` parameter to allow parallel execution to run in batches. In this case, the whole batch must complete before the next batch starts.
|
|
550
551
|
*/
|
|
551
|
-
export function mapParallelAsync<T extends IterableContainer, U>(
|
|
552
|
-
fn: (value: T[number], index: number) => Promise<U>,
|
|
553
|
-
): (data: T) => Promise<Mapped<T, U>>;
|
|
554
552
|
export function mapParallelAsync<T extends IterableContainer, U>(
|
|
555
553
|
fn: (value: T[number]) => Promise<U>,
|
|
554
|
+
batchSize?: number,
|
|
556
555
|
): (data: T) => Promise<Mapped<T, U>>;
|
|
557
556
|
|
|
558
557
|
/**
|
|
559
|
-
*
|
|
558
|
+
* Convenience method, when one needs to maps over a object property that is a list.
|
|
560
559
|
*/
|
|
561
|
-
export function mapPropObject<T extends object, K extends keyof T, Value>(
|
|
560
|
+
export function mapPropObject<T extends object, K extends keyof T, Value extends unknown>(
|
|
561
|
+
prop: K,
|
|
562
|
+
valueMapper: (
|
|
563
|
+
listItem: T[K] extends ReadonlyArray<infer ElementType> ? ElementType : never,
|
|
564
|
+
list: T[K] extends ReadonlyArray<any> ? T[K] : never,
|
|
565
|
+
) => Value,
|
|
566
|
+
): (data: T) => T[K] extends ReadonlyArray<any>
|
|
567
|
+
? MergeTypes<Omit<T, K> & { [P in K]: Value[] }>
|
|
568
|
+
: never;
|
|
569
|
+
export function mapPropObject<T extends object, K extends keyof T, Value extends unknown>(
|
|
570
|
+
prop: K,
|
|
562
571
|
valueMapper: (
|
|
563
|
-
|
|
564
|
-
data: T[K],
|
|
572
|
+
listItem: T[K] extends ReadonlyArray<infer ElementType> ? ElementType : never,
|
|
565
573
|
) => Value,
|
|
566
|
-
prop: K,
|
|
567
574
|
): (data: T) => T[K] extends ReadonlyArray<any>
|
|
568
575
|
? MergeTypes<Omit<T, K> & { [P in K]: Value[] }>
|
|
569
576
|
: never;
|
|
@@ -1827,7 +1834,7 @@ export function sort<T>(sortFn: (a: T, b: T) => number): (list: T[]) => T[];
|
|
|
1827
1834
|
*/
|
|
1828
1835
|
export function sortBy<T>(sortFn: (x: T) => Ord): (list: T[]) => T[];
|
|
1829
1836
|
|
|
1830
|
-
export function sortByDescending<T>(sortFn: (
|
|
1837
|
+
export function sortByDescending<T>(sortFn: (x: T) => Ord): (list: T[]) => T[];
|
|
1831
1838
|
|
|
1832
1839
|
/**
|
|
1833
1840
|
* It sorts `list` by the value of `path` property.
|
package/index.d.ts
CHANGED
|
@@ -547,23 +547,30 @@ export function mapObjectAsync<T extends object, Value>(
|
|
|
547
547
|
|
|
548
548
|
/**
|
|
549
549
|
* Wrapper around `Promise.all` for asynchronous mapping with `fn` over members of `list`.
|
|
550
|
+
* There is optional `batchSize` parameter to allow parallel execution to run in batches. In this case, the whole batch must complete before the next batch starts.
|
|
550
551
|
*/
|
|
551
|
-
export function mapParallelAsync<T extends IterableContainer, U>(
|
|
552
|
-
fn: (value: T[number], index: number) => Promise<U>,
|
|
553
|
-
): (data: T) => Promise<Mapped<T, U>>;
|
|
554
552
|
export function mapParallelAsync<T extends IterableContainer, U>(
|
|
555
553
|
fn: (value: T[number]) => Promise<U>,
|
|
554
|
+
batchSize?: number,
|
|
556
555
|
): (data: T) => Promise<Mapped<T, U>>;
|
|
557
556
|
|
|
558
557
|
/**
|
|
559
|
-
*
|
|
558
|
+
* Convenience method, when one needs to maps over a object property that is a list.
|
|
560
559
|
*/
|
|
561
|
-
export function mapPropObject<T extends object, K extends keyof T, Value>(
|
|
560
|
+
export function mapPropObject<T extends object, K extends keyof T, Value extends unknown>(
|
|
561
|
+
prop: K,
|
|
562
|
+
valueMapper: (
|
|
563
|
+
listItem: T[K] extends ReadonlyArray<infer ElementType> ? ElementType : never,
|
|
564
|
+
list: T[K] extends ReadonlyArray<any> ? T[K] : never,
|
|
565
|
+
) => Value,
|
|
566
|
+
): (data: T) => T[K] extends ReadonlyArray<any>
|
|
567
|
+
? MergeTypes<Omit<T, K> & { [P in K]: Value[] }>
|
|
568
|
+
: never;
|
|
569
|
+
export function mapPropObject<T extends object, K extends keyof T, Value extends unknown>(
|
|
570
|
+
prop: K,
|
|
562
571
|
valueMapper: (
|
|
563
|
-
|
|
564
|
-
data: T[K],
|
|
572
|
+
listItem: T[K] extends ReadonlyArray<infer ElementType> ? ElementType : never,
|
|
565
573
|
) => Value,
|
|
566
|
-
prop: K,
|
|
567
574
|
): (data: T) => T[K] extends ReadonlyArray<any>
|
|
568
575
|
? MergeTypes<Omit<T, K> & { [P in K]: Value[] }>
|
|
569
576
|
: never;
|
|
@@ -1827,7 +1834,7 @@ export function sort<T>(sortFn: (a: T, b: T) => number): (list: T[]) => T[];
|
|
|
1827
1834
|
*/
|
|
1828
1835
|
export function sortBy<T>(sortFn: (x: T) => Ord): (list: T[]) => T[];
|
|
1829
1836
|
|
|
1830
|
-
export function sortByDescending<T>(sortFn: (
|
|
1837
|
+
export function sortByDescending<T>(sortFn: (x: T) => Ord): (list: T[]) => T[];
|
|
1831
1838
|
|
|
1832
1839
|
/**
|
|
1833
1840
|
* It sorts `list` by the value of `path` property.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rambda",
|
|
3
|
-
"version": "10.3.
|
|
3
|
+
"version": "10.3.4",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"out": "yarn populatedocs && yarn populatereadme && yarn build && yarn create-docsify",
|
|
6
6
|
"build": "yarn build:main && yarn build:web && yarn build:esm",
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"test": "vitest run --watch -u",
|
|
17
17
|
"test:typings": "dtslint --localTs ./node_modules/typescript/lib --expectOnly ./source",
|
|
18
18
|
"create-docsify": "cd ../rambda-scripts && yarn create-docsify",
|
|
19
|
-
"deps": "run dep:next",
|
|
19
|
+
"deps": "run dep:next 10",
|
|
20
|
+
"x": "run dep:stable 10",
|
|
20
21
|
"ts": "yarn test:typings"
|
|
21
22
|
},
|
|
22
23
|
"niketaScripts": {
|
|
@@ -40,18 +41,18 @@
|
|
|
40
41
|
"devDependencies": {
|
|
41
42
|
"@definitelytyped/dtslint": "0.0.182",
|
|
42
43
|
"@types/mocha": "10.0.10",
|
|
43
|
-
"@types/node": "24.
|
|
44
|
-
"@vitest/coverage-v8": "4.0.
|
|
44
|
+
"@types/node": "24.10.1",
|
|
45
|
+
"@vitest/coverage-v8": "4.0.10",
|
|
45
46
|
"helpers-fn": "2.0.0",
|
|
46
47
|
"lodash": "4.17.21",
|
|
47
48
|
"radashi": "13.0.0-beta.ffa4778",
|
|
48
49
|
"rambdax": "11.3.1",
|
|
49
|
-
"ramda": "0.
|
|
50
|
+
"ramda": "0.32.0",
|
|
50
51
|
"remeda": "2.32.0",
|
|
51
|
-
"rollup": "4.
|
|
52
|
+
"rollup": "4.53.3",
|
|
52
53
|
"types-ramda": "0.31.0",
|
|
53
|
-
"typescript": "6.0.0-dev.
|
|
54
|
-
"vitest": "4.0.
|
|
54
|
+
"typescript": "6.0.0-dev.20251119",
|
|
55
|
+
"vitest": "4.0.10"
|
|
55
56
|
},
|
|
56
57
|
"jest": {
|
|
57
58
|
"testEnvironment": "node",
|
package/src/mapParallelAsync.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
-
export function mapParallelAsync(fn)
|
|
2
|
-
|
|
1
|
+
export function mapParallelAsync(fn, batchSize){
|
|
2
|
+
if(!batchSize) return async list => Promise.all(list.map(fn))
|
|
3
|
+
|
|
4
|
+
return async list => {
|
|
5
|
+
const result = []
|
|
6
|
+
for(let i = 0; i < list.length; i += batchSize){
|
|
7
|
+
const batch = list.slice(i, i + batchSize)
|
|
8
|
+
const batchResult = await Promise.all(batch.map((x, j) => fn(x, i + j)))
|
|
9
|
+
result.push(...batchResult)
|
|
10
|
+
}
|
|
11
|
+
return result
|
|
12
|
+
}
|
|
3
13
|
}
|