@nlozgachev/pipelined 0.65.0 → 0.66.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/README.md +52 -52
- package/dist/{Core-BDXRLmMa.cjs → Core-6SkC-fh5.cjs} +286 -206
- package/dist/{Core-BHN87zoB.mjs → Core-D7_9dZpV.mjs} +281 -201
- package/dist/core.cjs +2 -2
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.mjs +2 -2
- package/dist/data.cjs +60 -19
- package/dist/data.d.cts +23 -7
- package/dist/data.d.ts +23 -7
- package/dist/data.mjs +60 -19
- package/dist/{index-DCK_VPog.d.cts → index-8A9NqJTq.d.cts} +189 -152
- package/dist/{index-B07Wr815.d.ts → index-CY4ZLbjM.d.ts} +189 -152
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
package/dist/data.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_Core = require("./Core-
|
|
2
|
+
const require_Core = require("./Core-6SkC-fh5.cjs");
|
|
3
3
|
//#region src/Data/Arr.ts
|
|
4
4
|
let ArrMaybe;
|
|
5
5
|
(function(_ArrMaybe) {
|
|
@@ -31,20 +31,48 @@ let ArrResult;
|
|
|
31
31
|
})(ArrResult || (ArrResult = {}));
|
|
32
32
|
let ArrTaskResult;
|
|
33
33
|
(function(_ArrTaskResult) {
|
|
34
|
-
const traverse = _ArrTaskResult.traverse = (f) => (data) => () => require_Core.Deferred.from.Promise((async () => {
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
const traverse = _ArrTaskResult.traverse = (f, options) => (data) => (signal) => require_Core.Deferred.from.Promise((async () => {
|
|
35
|
+
const concurrency = options?.concurrency;
|
|
36
|
+
const len = data.length;
|
|
37
|
+
if (concurrency === void 0 || concurrency <= 1 || len <= 1) {
|
|
38
|
+
const result = [];
|
|
39
|
+
for (const a of data) {
|
|
40
|
+
const r = await require_Core.Deferred.to.Promise(f(a)(signal));
|
|
41
|
+
if (require_Core.Result.is.err(r)) return r;
|
|
42
|
+
result.push(r.value);
|
|
43
|
+
}
|
|
44
|
+
return require_Core.Result.make.ok(result);
|
|
40
45
|
}
|
|
41
|
-
return
|
|
46
|
+
return new Promise((resolve) => {
|
|
47
|
+
const results = new Array(len);
|
|
48
|
+
let nextIndex = 0;
|
|
49
|
+
let settled = false;
|
|
50
|
+
const worker = async () => {
|
|
51
|
+
while (nextIndex < len && !settled) {
|
|
52
|
+
const currentIndex = nextIndex++;
|
|
53
|
+
const r = await require_Core.Deferred.to.Promise(f(data[currentIndex])(signal));
|
|
54
|
+
if (settled) return;
|
|
55
|
+
if (require_Core.Result.is.err(r)) {
|
|
56
|
+
settled = true;
|
|
57
|
+
resolve(r);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
results[currentIndex] = r.value;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
const workerCount = Math.min(concurrency, len);
|
|
64
|
+
const workers = [];
|
|
65
|
+
for (let i = 0; i < workerCount; i++) workers.push(worker());
|
|
66
|
+
Promise.all(workers).then(() => {
|
|
67
|
+
if (!settled) resolve(require_Core.Result.make.ok(results));
|
|
68
|
+
});
|
|
69
|
+
});
|
|
42
70
|
})());
|
|
43
71
|
_ArrTaskResult.sequence = (data) => traverse((a) => a)(data);
|
|
44
72
|
})(ArrTaskResult || (ArrTaskResult = {}));
|
|
45
73
|
let ArrTask;
|
|
46
74
|
(function(_ArrTask) {
|
|
47
|
-
const traverse = _ArrTask.traverse = (f) => (data) =>
|
|
75
|
+
const traverse = _ArrTask.traverse = (f, options) => (data) => require_Core.Task.all(data.map(f), options);
|
|
48
76
|
_ArrTask.sequence = (data) => traverse((a) => a)(data);
|
|
49
77
|
_ArrTask.Result = ArrTaskResult;
|
|
50
78
|
})(ArrTask || (ArrTask = {}));
|
|
@@ -501,7 +529,7 @@ const flatMap = (f) => (data) => {
|
|
|
501
529
|
* ```
|
|
502
530
|
*/
|
|
503
531
|
const reduce$2 = (initial, f) => (data) => data.reduce(f, initial);
|
|
504
|
-
const _traverseTask = Object.assign((f) => ArrTask.traverse(f), { Result: ArrTaskResult.traverse });
|
|
532
|
+
const _traverseTask = Object.assign((f, options) => ArrTask.traverse(f, options), { Result: ArrTaskResult.traverse });
|
|
505
533
|
const _sequenceTask = Object.assign((data) => ArrTask.sequence(data), { Result: ArrTaskResult.sequence });
|
|
506
534
|
/**
|
|
507
535
|
* Prepends a value to the beginning of an array, returning a NonEmptyArr.
|
|
@@ -2733,20 +2761,33 @@ const Str = {
|
|
|
2733
2761
|
}
|
|
2734
2762
|
},
|
|
2735
2763
|
/**
|
|
2736
|
-
*
|
|
2764
|
+
* Matches a string against a regular expression.
|
|
2765
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
2737
2766
|
*
|
|
2738
2767
|
* @example
|
|
2739
2768
|
* ```ts
|
|
2740
|
-
*
|
|
2741
|
-
* Str.
|
|
2769
|
+
* pipe("hello 42", Str.match(/\d+/)); // Some(["42"])
|
|
2770
|
+
* pipe("hello", Str.match(/\d+/)); // None
|
|
2742
2771
|
* ```
|
|
2743
2772
|
*/
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2749
|
-
|
|
2773
|
+
match: (pattern) => (s) => {
|
|
2774
|
+
pattern.lastIndex = 0;
|
|
2775
|
+
const result = s.match(pattern);
|
|
2776
|
+
return result !== null ? require_Core.Maybe.make.some(result) : require_Core.Maybe.make.none();
|
|
2777
|
+
},
|
|
2778
|
+
/**
|
|
2779
|
+
* Tests whether a string matches a regular expression.
|
|
2780
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
2781
|
+
*
|
|
2782
|
+
* @example
|
|
2783
|
+
* ```ts
|
|
2784
|
+
* pipe("user@example.com", Str.test(/^[^@]+@[^@]+$/)); // true
|
|
2785
|
+
* pipe("invalid-email", Str.test(/^[^@]+@[^@]+$/)); // false
|
|
2786
|
+
* ```
|
|
2787
|
+
*/
|
|
2788
|
+
test: (pattern) => (s) => {
|
|
2789
|
+
pattern.lastIndex = 0;
|
|
2790
|
+
return pattern.test(s);
|
|
2750
2791
|
},
|
|
2751
2792
|
/**
|
|
2752
2793
|
* Converts the first character of a string to lower case.
|
package/dist/data.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as Brand } from "./index-Bs8En5LJ.cjs";
|
|
2
2
|
import { n as NonEmpty, r as NonEmptyArr } from "./InternalTypes-B1Lh9uw_.cjs";
|
|
3
|
-
import {
|
|
3
|
+
import { C as Ordering, E as Maybe, N as Equality, a as Task, f as Result } from "./index-8A9NqJTq.cjs";
|
|
4
4
|
//#region src/Data/Arr.d.ts
|
|
5
5
|
declare namespace ArrTaskResult {
|
|
6
6
|
/**
|
|
@@ -23,7 +23,9 @@ declare namespace ArrTaskResult {
|
|
|
23
23
|
* )(); // Deferred<Err("non-positive")>
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
const traverse: <E, A, B>(f: (a: A) => Task.Result<E, B
|
|
26
|
+
const traverse: <E, A, B>(f: (a: A) => Task.Result<E, B>, options?: {
|
|
27
|
+
concurrency?: number;
|
|
28
|
+
}) => (data: readonly A[]) => Task.Result<E, readonly B[]>;
|
|
27
29
|
/**
|
|
28
30
|
* Collects an array of Task.Results into a Task.Result of array.
|
|
29
31
|
* Returns the first Err if any element is Err, runs sequentially.
|
|
@@ -39,7 +41,9 @@ declare namespace ArrTaskResult {
|
|
|
39
41
|
const sequence: <E, A>(data: readonly Task.Result<E, A>[]) => Task.Result<E, readonly A[]>;
|
|
40
42
|
}
|
|
41
43
|
interface TaskTraverse {
|
|
42
|
-
<A, B>(f: (a: A) => Task<B
|
|
44
|
+
<A, B>(f: (a: A) => Task<B>, options?: {
|
|
45
|
+
concurrency?: number;
|
|
46
|
+
}): (data: readonly A[]) => Task<readonly B[]>;
|
|
43
47
|
Result: typeof ArrTaskResult.traverse;
|
|
44
48
|
}
|
|
45
49
|
interface TaskSequence {
|
|
@@ -1365,15 +1369,27 @@ export declare const Str: {
|
|
|
1365
1369
|
float: (s: string) => Maybe<number>;
|
|
1366
1370
|
};
|
|
1367
1371
|
/**
|
|
1368
|
-
*
|
|
1372
|
+
* Matches a string against a regular expression.
|
|
1373
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
1369
1374
|
*
|
|
1370
1375
|
* @example
|
|
1371
1376
|
* ```ts
|
|
1372
|
-
*
|
|
1373
|
-
* Str.
|
|
1377
|
+
* pipe("hello 42", Str.match(/\d+/)); // Some(["42"])
|
|
1378
|
+
* pipe("hello", Str.match(/\d+/)); // None
|
|
1374
1379
|
* ```
|
|
1375
1380
|
*/
|
|
1376
|
-
|
|
1381
|
+
match: (pattern: RegExp) => (s: string) => Maybe<RegExpMatchArray>;
|
|
1382
|
+
/**
|
|
1383
|
+
* Tests whether a string matches a regular expression.
|
|
1384
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
1385
|
+
*
|
|
1386
|
+
* @example
|
|
1387
|
+
* ```ts
|
|
1388
|
+
* pipe("user@example.com", Str.test(/^[^@]+@[^@]+$/)); // true
|
|
1389
|
+
* pipe("invalid-email", Str.test(/^[^@]+@[^@]+$/)); // false
|
|
1390
|
+
* ```
|
|
1391
|
+
*/
|
|
1392
|
+
test: (pattern: RegExp) => (s: string) => boolean;
|
|
1377
1393
|
/**
|
|
1378
1394
|
* Converts the first character of a string to lower case.
|
|
1379
1395
|
*
|
package/dist/data.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as Brand } from "./index-Bs8En5LJ.js";
|
|
2
2
|
import { n as NonEmpty, r as NonEmptyArr } from "./InternalTypes-DzDey5Do.js";
|
|
3
|
-
import {
|
|
3
|
+
import { C as Ordering, E as Maybe, N as Equality, a as Task, f as Result } from "./index-CY4ZLbjM.js";
|
|
4
4
|
//#region src/Data/Arr.d.ts
|
|
5
5
|
declare namespace ArrTaskResult {
|
|
6
6
|
/**
|
|
@@ -23,7 +23,9 @@ declare namespace ArrTaskResult {
|
|
|
23
23
|
* )(); // Deferred<Err("non-positive")>
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
|
-
const traverse: <E, A, B>(f: (a: A) => Task.Result<E, B
|
|
26
|
+
const traverse: <E, A, B>(f: (a: A) => Task.Result<E, B>, options?: {
|
|
27
|
+
concurrency?: number;
|
|
28
|
+
}) => (data: readonly A[]) => Task.Result<E, readonly B[]>;
|
|
27
29
|
/**
|
|
28
30
|
* Collects an array of Task.Results into a Task.Result of array.
|
|
29
31
|
* Returns the first Err if any element is Err, runs sequentially.
|
|
@@ -39,7 +41,9 @@ declare namespace ArrTaskResult {
|
|
|
39
41
|
const sequence: <E, A>(data: readonly Task.Result<E, A>[]) => Task.Result<E, readonly A[]>;
|
|
40
42
|
}
|
|
41
43
|
interface TaskTraverse {
|
|
42
|
-
<A, B>(f: (a: A) => Task<B
|
|
44
|
+
<A, B>(f: (a: A) => Task<B>, options?: {
|
|
45
|
+
concurrency?: number;
|
|
46
|
+
}): (data: readonly A[]) => Task<readonly B[]>;
|
|
43
47
|
Result: typeof ArrTaskResult.traverse;
|
|
44
48
|
}
|
|
45
49
|
interface TaskSequence {
|
|
@@ -1365,15 +1369,27 @@ export declare const Str: {
|
|
|
1365
1369
|
float: (s: string) => Maybe<number>;
|
|
1366
1370
|
};
|
|
1367
1371
|
/**
|
|
1368
|
-
*
|
|
1372
|
+
* Matches a string against a regular expression.
|
|
1373
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
1369
1374
|
*
|
|
1370
1375
|
* @example
|
|
1371
1376
|
* ```ts
|
|
1372
|
-
*
|
|
1373
|
-
* Str.
|
|
1377
|
+
* pipe("hello 42", Str.match(/\d+/)); // Some(["42"])
|
|
1378
|
+
* pipe("hello", Str.match(/\d+/)); // None
|
|
1374
1379
|
* ```
|
|
1375
1380
|
*/
|
|
1376
|
-
|
|
1381
|
+
match: (pattern: RegExp) => (s: string) => Maybe<RegExpMatchArray>;
|
|
1382
|
+
/**
|
|
1383
|
+
* Tests whether a string matches a regular expression.
|
|
1384
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
1385
|
+
*
|
|
1386
|
+
* @example
|
|
1387
|
+
* ```ts
|
|
1388
|
+
* pipe("user@example.com", Str.test(/^[^@]+@[^@]+$/)); // true
|
|
1389
|
+
* pipe("invalid-email", Str.test(/^[^@]+@[^@]+$/)); // false
|
|
1390
|
+
* ```
|
|
1391
|
+
*/
|
|
1392
|
+
test: (pattern: RegExp) => (s: string) => boolean;
|
|
1377
1393
|
/**
|
|
1378
1394
|
* Converts the first character of a string to lower case.
|
|
1379
1395
|
*
|
package/dist/data.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { S as Deferred,
|
|
1
|
+
import { S as Deferred, g as Maybe, i as isNonEmptyArr, n as Task, o as Result } from "./Core-D7_9dZpV.mjs";
|
|
2
2
|
//#region src/Data/Arr.ts
|
|
3
3
|
let ArrMaybe;
|
|
4
4
|
(function(_ArrMaybe) {
|
|
@@ -30,20 +30,48 @@ let ArrResult;
|
|
|
30
30
|
})(ArrResult || (ArrResult = {}));
|
|
31
31
|
let ArrTaskResult;
|
|
32
32
|
(function(_ArrTaskResult) {
|
|
33
|
-
const traverse = _ArrTaskResult.traverse = (f) => (data) => () => Deferred.from.Promise((async () => {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
const traverse = _ArrTaskResult.traverse = (f, options) => (data) => (signal) => Deferred.from.Promise((async () => {
|
|
34
|
+
const concurrency = options?.concurrency;
|
|
35
|
+
const len = data.length;
|
|
36
|
+
if (concurrency === void 0 || concurrency <= 1 || len <= 1) {
|
|
37
|
+
const result = [];
|
|
38
|
+
for (const a of data) {
|
|
39
|
+
const r = await Deferred.to.Promise(f(a)(signal));
|
|
40
|
+
if (Result.is.err(r)) return r;
|
|
41
|
+
result.push(r.value);
|
|
42
|
+
}
|
|
43
|
+
return Result.make.ok(result);
|
|
39
44
|
}
|
|
40
|
-
return
|
|
45
|
+
return new Promise((resolve) => {
|
|
46
|
+
const results = new Array(len);
|
|
47
|
+
let nextIndex = 0;
|
|
48
|
+
let settled = false;
|
|
49
|
+
const worker = async () => {
|
|
50
|
+
while (nextIndex < len && !settled) {
|
|
51
|
+
const currentIndex = nextIndex++;
|
|
52
|
+
const r = await Deferred.to.Promise(f(data[currentIndex])(signal));
|
|
53
|
+
if (settled) return;
|
|
54
|
+
if (Result.is.err(r)) {
|
|
55
|
+
settled = true;
|
|
56
|
+
resolve(r);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
results[currentIndex] = r.value;
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
const workerCount = Math.min(concurrency, len);
|
|
63
|
+
const workers = [];
|
|
64
|
+
for (let i = 0; i < workerCount; i++) workers.push(worker());
|
|
65
|
+
Promise.all(workers).then(() => {
|
|
66
|
+
if (!settled) resolve(Result.make.ok(results));
|
|
67
|
+
});
|
|
68
|
+
});
|
|
41
69
|
})());
|
|
42
70
|
_ArrTaskResult.sequence = (data) => traverse((a) => a)(data);
|
|
43
71
|
})(ArrTaskResult || (ArrTaskResult = {}));
|
|
44
72
|
let ArrTask;
|
|
45
73
|
(function(_ArrTask) {
|
|
46
|
-
const traverse = _ArrTask.traverse = (f) => (data) =>
|
|
74
|
+
const traverse = _ArrTask.traverse = (f, options) => (data) => Task.all(data.map(f), options);
|
|
47
75
|
_ArrTask.sequence = (data) => traverse((a) => a)(data);
|
|
48
76
|
_ArrTask.Result = ArrTaskResult;
|
|
49
77
|
})(ArrTask || (ArrTask = {}));
|
|
@@ -500,7 +528,7 @@ const flatMap = (f) => (data) => {
|
|
|
500
528
|
* ```
|
|
501
529
|
*/
|
|
502
530
|
const reduce$2 = (initial, f) => (data) => data.reduce(f, initial);
|
|
503
|
-
const _traverseTask = Object.assign((f) => ArrTask.traverse(f), { Result: ArrTaskResult.traverse });
|
|
531
|
+
const _traverseTask = Object.assign((f, options) => ArrTask.traverse(f, options), { Result: ArrTaskResult.traverse });
|
|
504
532
|
const _sequenceTask = Object.assign((data) => ArrTask.sequence(data), { Result: ArrTaskResult.sequence });
|
|
505
533
|
/**
|
|
506
534
|
* Prepends a value to the beginning of an array, returning a NonEmptyArr.
|
|
@@ -2732,20 +2760,33 @@ const Str = {
|
|
|
2732
2760
|
}
|
|
2733
2761
|
},
|
|
2734
2762
|
/**
|
|
2735
|
-
*
|
|
2763
|
+
* Matches a string against a regular expression.
|
|
2764
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
2736
2765
|
*
|
|
2737
2766
|
* @example
|
|
2738
2767
|
* ```ts
|
|
2739
|
-
*
|
|
2740
|
-
* Str.
|
|
2768
|
+
* pipe("hello 42", Str.match(/\d+/)); // Some(["42"])
|
|
2769
|
+
* pipe("hello", Str.match(/\d+/)); // None
|
|
2741
2770
|
* ```
|
|
2742
2771
|
*/
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
|
|
2772
|
+
match: (pattern) => (s) => {
|
|
2773
|
+
pattern.lastIndex = 0;
|
|
2774
|
+
const result = s.match(pattern);
|
|
2775
|
+
return result !== null ? Maybe.make.some(result) : Maybe.make.none();
|
|
2776
|
+
},
|
|
2777
|
+
/**
|
|
2778
|
+
* Tests whether a string matches a regular expression.
|
|
2779
|
+
* Pure and safe: resets `pattern.lastIndex = 0` to prevent bugs with stateful `/g` and `/y` regexes.
|
|
2780
|
+
*
|
|
2781
|
+
* @example
|
|
2782
|
+
* ```ts
|
|
2783
|
+
* pipe("user@example.com", Str.test(/^[^@]+@[^@]+$/)); // true
|
|
2784
|
+
* pipe("invalid-email", Str.test(/^[^@]+@[^@]+$/)); // false
|
|
2785
|
+
* ```
|
|
2786
|
+
*/
|
|
2787
|
+
test: (pattern) => (s) => {
|
|
2788
|
+
pattern.lastIndex = 0;
|
|
2789
|
+
return pattern.test(s);
|
|
2749
2790
|
},
|
|
2750
2791
|
/**
|
|
2751
2792
|
* Converts the first character of a string to lower case.
|