@nicolastoulemont/std 0.6.0 → 0.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/README.md +232 -27
- package/dist/adt/index.d.mts +2 -2
- package/dist/adt/index.mjs +1 -1
- package/dist/adt-DajUZvJe.mjs +2 -0
- package/dist/adt-DajUZvJe.mjs.map +1 -0
- package/dist/brand/index.d.mts +2 -2
- package/dist/brand/index.mjs +1 -1
- package/dist/brand-Bia3Vj6l.mjs +2 -0
- package/dist/brand-Bia3Vj6l.mjs.map +1 -0
- package/dist/context/index.d.mts +2 -0
- package/dist/context/index.mjs +1 -0
- package/dist/context-CCHj1nab.mjs +2 -0
- package/dist/context-CCHj1nab.mjs.map +1 -0
- package/dist/context-r8ESJiFn.d.mts +176 -0
- package/dist/context-r8ESJiFn.d.mts.map +1 -0
- package/dist/data/index.d.mts +2 -2
- package/dist/data/index.mjs +1 -1
- package/dist/data-CJxw6al9.mjs +2 -0
- package/dist/data-CJxw6al9.mjs.map +1 -0
- package/dist/data.tagged-error.types-CLlJJ3n5.d.mts +50 -0
- package/dist/data.tagged-error.types-CLlJJ3n5.d.mts.map +1 -0
- package/dist/{discriminator.types-9PxvrZki.d.mts → discriminator.types-CTURejXz.d.mts} +1 -1
- package/dist/discriminator.types-CTURejXz.d.mts.map +1 -0
- package/dist/dual-CZhzZslG.mjs +2 -0
- package/dist/dual-CZhzZslG.mjs.map +1 -0
- package/dist/either/index.d.mts +2 -2
- package/dist/either/index.mjs +1 -1
- package/dist/either-6BwadiFj.mjs +2 -0
- package/dist/either-6BwadiFj.mjs.map +1 -0
- package/dist/{equality-CD4_A1Op.mjs → equality-CoyUHWh9.mjs} +1 -1
- package/dist/{equality-CD4_A1Op.mjs.map → equality-CoyUHWh9.mjs.map} +1 -1
- package/dist/{flow-CYjiodlC.mjs → flow-D8_tllWl.mjs} +1 -1
- package/dist/flow-D8_tllWl.mjs.map +1 -0
- package/dist/functions/index.d.mts +2 -0
- package/dist/functions/index.mjs +1 -0
- package/dist/functions-BkevX2Dw.mjs +2 -0
- package/dist/functions-BkevX2Dw.mjs.map +1 -0
- package/dist/fx/index.d.mts +2 -3
- package/dist/fx/index.mjs +1 -1
- package/dist/fx-BzxLbf1Q.mjs +2 -0
- package/dist/fx-BzxLbf1Q.mjs.map +1 -0
- package/dist/fx.runtime-BcC6yMSy.mjs +2 -0
- package/dist/fx.runtime-BcC6yMSy.mjs.map +1 -0
- package/dist/{fx.types-CDVjDn_3.mjs → fx.types-Bg-Mmdm5.mjs} +1 -1
- package/dist/fx.types-Bg-Mmdm5.mjs.map +1 -0
- package/dist/{fx.types-B34asVRX.d.mts → fx.types-DeEWEltG.d.mts} +2 -2
- package/dist/{fx.types-B34asVRX.d.mts.map → fx.types-DeEWEltG.d.mts.map} +1 -1
- package/dist/index-7Lv982Om.d.mts +217 -0
- package/dist/index-7Lv982Om.d.mts.map +1 -0
- package/dist/index-B_iY5tq0.d.mts +241 -0
- package/dist/index-B_iY5tq0.d.mts.map +1 -0
- package/dist/index-B_wWGszy.d.mts +129 -0
- package/dist/index-B_wWGszy.d.mts.map +1 -0
- package/dist/index-BiiE8NS7.d.mts +108 -0
- package/dist/index-BiiE8NS7.d.mts.map +1 -0
- package/dist/index-By6dNRc4.d.mts +277 -0
- package/dist/index-By6dNRc4.d.mts.map +1 -0
- package/dist/index-CCo85AdC.d.mts +121 -0
- package/dist/index-CCo85AdC.d.mts.map +1 -0
- package/dist/index-CUZn-ohG.d.mts +490 -0
- package/dist/index-CUZn-ohG.d.mts.map +1 -0
- package/dist/index-CugDqdx6.d.mts +464 -0
- package/dist/index-CugDqdx6.d.mts.map +1 -0
- package/dist/{index-B2l8_CiD.d.mts → index-DEAWPlcI.d.mts} +155 -216
- package/dist/index-DEAWPlcI.d.mts.map +1 -0
- package/dist/{index-C4v_3f3-.d.mts → index-DKS1g1oC.d.mts} +95 -42
- package/dist/index-DKS1g1oC.d.mts.map +1 -0
- package/dist/{index-CklRfom5.d.mts → index-DSsDFLGw.d.mts} +263 -368
- package/dist/index-DSsDFLGw.d.mts.map +1 -0
- package/dist/{index-jeC5jyRh.d.mts → index-DXbYlSnB.d.mts} +64 -101
- package/dist/index-DXbYlSnB.d.mts.map +1 -0
- package/dist/{index-BzYtgdX0.d.mts → index-DaTvFhZ8.d.mts} +123 -16
- package/dist/index-DaTvFhZ8.d.mts.map +1 -0
- package/dist/{index-CjZ95Dsv.d.mts → index-Dm2dFysv.d.mts} +188 -202
- package/dist/index-Dm2dFysv.d.mts.map +1 -0
- package/dist/index.d.mts +23 -16
- package/dist/index.mjs +1 -1
- package/dist/layer/index.d.mts +2 -0
- package/dist/layer/index.mjs +1 -0
- package/dist/layer-BttmtDrs.mjs +2 -0
- package/dist/layer-BttmtDrs.mjs.map +1 -0
- package/dist/layer.types-DgpCIsk_.d.mts +100 -0
- package/dist/layer.types-DgpCIsk_.d.mts.map +1 -0
- package/dist/multithread/index.d.mts +2 -0
- package/dist/multithread/index.mjs +1 -0
- package/dist/multithread-xUUh4eLn.mjs +19 -0
- package/dist/multithread-xUUh4eLn.mjs.map +1 -0
- package/dist/option/index.d.mts +2 -3
- package/dist/option/index.mjs +1 -1
- package/dist/option-Qt1H-u7c.mjs +2 -0
- package/dist/option-Qt1H-u7c.mjs.map +1 -0
- package/dist/option.types-DRUm2QiI.mjs +2 -0
- package/dist/option.types-DRUm2QiI.mjs.map +1 -0
- package/dist/{option.types-ClJiBTdg.d.mts → option.types-DlAb6Sr0.d.mts} +4 -4
- package/dist/option.types-DlAb6Sr0.d.mts.map +1 -0
- package/dist/order/index.d.mts +2 -0
- package/dist/order/index.mjs +1 -0
- package/dist/order-D5c4QChk.mjs +2 -0
- package/dist/order-D5c4QChk.mjs.map +1 -0
- package/dist/pipeable-COGyGMUV.mjs +2 -0
- package/dist/pipeable-COGyGMUV.mjs.map +1 -0
- package/dist/{pipeable-B4YJA56p.d.mts → pipeable-rfqacPxZ.d.mts} +2 -9
- package/dist/{pipeable-B4YJA56p.d.mts.map → pipeable-rfqacPxZ.d.mts.map} +1 -1
- package/dist/predicate/index.d.mts +2 -2
- package/dist/predicate/index.mjs +1 -1
- package/dist/predicate-DUhhQqWY.mjs +2 -0
- package/dist/predicate-DUhhQqWY.mjs.map +1 -0
- package/dist/provide/index.d.mts +2 -0
- package/dist/provide/index.mjs +1 -0
- package/dist/provide-B_SqJpCd.mjs +2 -0
- package/dist/provide-B_SqJpCd.mjs.map +1 -0
- package/dist/queue/index.d.mts +2 -0
- package/dist/queue/index.mjs +1 -0
- package/dist/queue-CG5izEBS.mjs +2 -0
- package/dist/queue-CG5izEBS.mjs.map +1 -0
- package/dist/queue.types-CD2LOu37.d.mts +36 -0
- package/dist/queue.types-CD2LOu37.d.mts.map +1 -0
- package/dist/result/index.d.mts +2 -3
- package/dist/result/index.mjs +1 -1
- package/dist/result-BEzV0DYC.mjs +2 -0
- package/dist/result-BEzV0DYC.mjs.map +1 -0
- package/dist/{result.types-HHDzgSTV.d.mts → result.types-_xDAei3-.d.mts} +5 -97
- package/dist/result.types-_xDAei3-.d.mts.map +1 -0
- package/dist/schedule/index.d.mts +2 -0
- package/dist/schedule/index.mjs +1 -0
- package/dist/schedule-C6tjcJ1O.mjs +2 -0
- package/dist/schedule-C6tjcJ1O.mjs.map +1 -0
- package/dist/schedule-DlX2Dg69.d.mts +144 -0
- package/dist/schedule-DlX2Dg69.d.mts.map +1 -0
- package/dist/scope/index.d.mts +2 -0
- package/dist/scope/index.mjs +1 -0
- package/dist/scope-CZdp4wKX.d.mts +79 -0
- package/dist/scope-CZdp4wKX.d.mts.map +1 -0
- package/dist/scope-qwL1VUh2.mjs +2 -0
- package/dist/scope-qwL1VUh2.mjs.map +1 -0
- package/dist/service/index.d.mts +2 -0
- package/dist/service/index.mjs +1 -0
- package/dist/service-3PYQTUdH.mjs +2 -0
- package/dist/service-3PYQTUdH.mjs.map +1 -0
- package/dist/service-DrXU7KJG.d.mts +69 -0
- package/dist/service-DrXU7KJG.d.mts.map +1 -0
- package/dist/service-resolution-C19smeaO.mjs +2 -0
- package/dist/service-resolution-C19smeaO.mjs.map +1 -0
- package/package.json +50 -12
- package/dist/adt-CkRcY_GA.mjs +0 -2
- package/dist/adt-CkRcY_GA.mjs.map +0 -1
- package/dist/apply-fn.types-0g_9eXRy.d.mts +0 -8
- package/dist/apply-fn.types-0g_9eXRy.d.mts.map +0 -1
- package/dist/brand-Gy0kW6-n.mjs +0 -2
- package/dist/brand-Gy0kW6-n.mjs.map +0 -1
- package/dist/data-C0_3MGwm.mjs +0 -2
- package/dist/data-C0_3MGwm.mjs.map +0 -1
- package/dist/discriminator.types-9PxvrZki.d.mts.map +0 -1
- package/dist/either-CPzK-s8W.mjs +0 -2
- package/dist/either-CPzK-s8W.mjs.map +0 -1
- package/dist/err/index.d.mts +0 -2
- package/dist/err/index.mjs +0 -1
- package/dist/err-3KpQ4pj9.mjs +0 -2
- package/dist/err-3KpQ4pj9.mjs.map +0 -1
- package/dist/flow/index.d.mts +0 -2
- package/dist/flow/index.mjs +0 -1
- package/dist/flow-CYjiodlC.mjs.map +0 -1
- package/dist/fx-vqywVJhV.mjs +0 -2
- package/dist/fx-vqywVJhV.mjs.map +0 -1
- package/dist/fx.types-CDVjDn_3.mjs.map +0 -1
- package/dist/index-8Ne4GdOG.d.mts +0 -288
- package/dist/index-8Ne4GdOG.d.mts.map +0 -1
- package/dist/index-B2l8_CiD.d.mts.map +0 -1
- package/dist/index-BOrJQBPO.d.mts +0 -80
- package/dist/index-BOrJQBPO.d.mts.map +0 -1
- package/dist/index-BsXtpnw-.d.mts +0 -225
- package/dist/index-BsXtpnw-.d.mts.map +0 -1
- package/dist/index-BzYtgdX0.d.mts.map +0 -1
- package/dist/index-C4v_3f3-.d.mts.map +0 -1
- package/dist/index-CjZ95Dsv.d.mts.map +0 -1
- package/dist/index-CklRfom5.d.mts.map +0 -1
- package/dist/index-DZdmFtjA.d.mts +0 -79
- package/dist/index-DZdmFtjA.d.mts.map +0 -1
- package/dist/index-a4MEBZZ1.d.mts +0 -850
- package/dist/index-a4MEBZZ1.d.mts.map +0 -1
- package/dist/index-jeC5jyRh.d.mts.map +0 -1
- package/dist/option-DawZC1cE.mjs +0 -2
- package/dist/option-DawZC1cE.mjs.map +0 -1
- package/dist/option.types-ClJiBTdg.d.mts.map +0 -1
- package/dist/pipe/index.d.mts +0 -2
- package/dist/pipe/index.mjs +0 -1
- package/dist/pipe-BPpJyZf7.mjs +0 -2
- package/dist/pipe-BPpJyZf7.mjs.map +0 -1
- package/dist/pipeable-BA0mXhs4.mjs +0 -2
- package/dist/pipeable-BA0mXhs4.mjs.map +0 -1
- package/dist/predicate-Cy_oHA1Q.mjs +0 -2
- package/dist/predicate-Cy_oHA1Q.mjs.map +0 -1
- package/dist/result-CgGYLp0L.mjs +0 -2
- package/dist/result-CgGYLp0L.mjs.map +0 -1
- package/dist/result.types-HHDzgSTV.d.mts.map +0 -1
- /package/dist/{chunk-DAexk1S7.mjs → chunk-C934ptG5.mjs} +0 -0
- /package/dist/{option-Bb-taghv.mjs → option-CBCwzF0L.mjs} +0 -0
- /package/dist/{result-fiJhwVGz.mjs → result-B5WbPg8C.mjs} +0 -0
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
import { i as Fx } from "./fx.types-DeEWEltG.mjs";
|
|
2
|
+
import { t as Result } from "./result.types-_xDAei3-.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/multithread/multithread.types.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Shared cancellation signal propagated to worker tasks.
|
|
8
|
+
*
|
|
9
|
+
* - When `null`, cooperative cancellation is unavailable in this environment.
|
|
10
|
+
* - When present, `Atomics.load(signal, 0) === 1` indicates cancellation.
|
|
11
|
+
*/
|
|
12
|
+
type MultithreadSignal = Int32Array<SharedArrayBuffer> | null;
|
|
13
|
+
/**
|
|
14
|
+
* Cooperative cancellation context injected as the last argument in worker callbacks.
|
|
15
|
+
*/
|
|
16
|
+
type MultithreadCtx = {
|
|
17
|
+
readonly signal: MultithreadSignal;
|
|
18
|
+
isCancelled(): boolean;
|
|
19
|
+
throwIfCancelled(): void;
|
|
20
|
+
};
|
|
21
|
+
type MultithreadRuntimeUnavailableError = {
|
|
22
|
+
readonly _tag: "MultithreadRuntimeUnavailableError";
|
|
23
|
+
readonly message: string;
|
|
24
|
+
readonly cause?: unknown;
|
|
25
|
+
};
|
|
26
|
+
type MultithreadRuntimeAlreadyInitializedError = {
|
|
27
|
+
readonly _tag: "MultithreadRuntimeAlreadyInitializedError";
|
|
28
|
+
readonly message: string;
|
|
29
|
+
};
|
|
30
|
+
type MultithreadWorkerExecutionError = {
|
|
31
|
+
readonly _tag: "MultithreadWorkerExecutionError";
|
|
32
|
+
readonly message: string;
|
|
33
|
+
readonly cause: unknown;
|
|
34
|
+
};
|
|
35
|
+
type MultithreadCancelledError = {
|
|
36
|
+
readonly _tag: "MultithreadCancelledError";
|
|
37
|
+
readonly message: string;
|
|
38
|
+
};
|
|
39
|
+
type MultithreadAllFailedError = {
|
|
40
|
+
readonly _tag: "MultithreadAllFailedError";
|
|
41
|
+
readonly message: string;
|
|
42
|
+
readonly errors: readonly unknown[];
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Canonical error union for multithread operations.
|
|
46
|
+
*/
|
|
47
|
+
type MultithreadError = MultithreadRuntimeUnavailableError | MultithreadRuntimeAlreadyInitializedError | MultithreadWorkerExecutionError | MultithreadCancelledError | MultithreadAllFailedError;
|
|
48
|
+
/**
|
|
49
|
+
* Worker callback output shape.
|
|
50
|
+
*
|
|
51
|
+
* Worker callbacks may return either:
|
|
52
|
+
* - raw values (wrapped as `Result.ok`), or
|
|
53
|
+
* - explicit `Result` values.
|
|
54
|
+
*/
|
|
55
|
+
type WorkerReturn<A, E> = A | Result<A, E> | Promise<A> | Promise<Result<A, E>>;
|
|
56
|
+
/**
|
|
57
|
+
* Cold, memoized operation representing one multithread execution.
|
|
58
|
+
*
|
|
59
|
+
* - `result()` is the canonical Result-first API.
|
|
60
|
+
* - `await op` works through `then`.
|
|
61
|
+
* - `yield* op` works through async iterator yieldability.
|
|
62
|
+
*/
|
|
63
|
+
type MultithreadOp<A, E> = Fx<A, E> & {
|
|
64
|
+
readonly _tag: "MultithreadOp";
|
|
65
|
+
result(): Promise<Result<A, E>>;
|
|
66
|
+
abort(): void;
|
|
67
|
+
then: PromiseLike<Result<A, E>>["then"];
|
|
68
|
+
[Symbol.asyncIterator](): AsyncGenerator<E, A, unknown>;
|
|
69
|
+
};
|
|
70
|
+
type MultithreadParallelOptions = {
|
|
71
|
+
readonly parallelism?: number;
|
|
72
|
+
};
|
|
73
|
+
type WorkerWithCtx<Args extends readonly unknown[], A, E> = (...args: [...Args, MultithreadCtx]) => WorkerReturn<A, E>;
|
|
74
|
+
type MultithreadRun = {
|
|
75
|
+
<A, E = never>(worker: (ctx: MultithreadCtx) => WorkerReturn<A, E>): MultithreadOp<A, E | MultithreadError>;
|
|
76
|
+
<Args extends readonly unknown[], A, E = never>(worker: WorkerWithCtx<Args, A, E>, ...args: Args): MultithreadOp<A, E | MultithreadError>;
|
|
77
|
+
};
|
|
78
|
+
type MultithreadTask = {
|
|
79
|
+
<A, E = never>(worker: (ctx: MultithreadCtx) => WorkerReturn<A, E>): () => MultithreadOp<A, E | MultithreadError>;
|
|
80
|
+
<Args extends readonly unknown[], A, E = never>(worker: WorkerWithCtx<Args, A, E>): (...args: Args) => MultithreadOp<A, E | MultithreadError>;
|
|
81
|
+
};
|
|
82
|
+
type MultithreadMapWorker<A, B, E> = (value: A, index: number, ctx: MultithreadCtx) => WorkerReturn<B, E>;
|
|
83
|
+
type MultithreadMap = {
|
|
84
|
+
<A, B, E = never>(values: readonly A[], worker: MultithreadMapWorker<A, B, E>, options?: MultithreadParallelOptions): MultithreadOp<readonly B[], E | MultithreadError>;
|
|
85
|
+
<A, B, E = never, InputE = never>(values: Result<readonly A[], InputE>, worker: MultithreadMapWorker<A, B, E>, options?: MultithreadParallelOptions): Promise<Result<readonly B[], E | InputE | MultithreadError>>;
|
|
86
|
+
<A, B, E = never>(worker: MultithreadMapWorker<A, B, E>, options?: MultithreadParallelOptions): <Input extends readonly A[] | Result<readonly A[], unknown>>(values: Input) => Input extends Result<readonly A[], infer InputE> ? Promise<Result<readonly B[], E | InputE | MultithreadError>> : MultithreadOp<readonly B[], E | MultithreadError>;
|
|
87
|
+
};
|
|
88
|
+
type MultithreadForEach = {
|
|
89
|
+
<A, E = never>(values: readonly A[], worker: MultithreadMapWorker<A, unknown, E>, options?: MultithreadParallelOptions): MultithreadOp<void, E | MultithreadError>;
|
|
90
|
+
<A, E = never, InputE = never>(values: Result<readonly A[], InputE>, worker: MultithreadMapWorker<A, unknown, E>, options?: MultithreadParallelOptions): Promise<Result<void, E | InputE | MultithreadError>>;
|
|
91
|
+
<A, E = never>(worker: MultithreadMapWorker<A, unknown, E>, options?: MultithreadParallelOptions): <Input extends readonly A[] | Result<readonly A[], unknown>>(values: Input) => Input extends Result<readonly A[], infer InputE> ? Promise<Result<void, E | InputE | MultithreadError>> : MultithreadOp<void, E | MultithreadError>;
|
|
92
|
+
};
|
|
93
|
+
type MultithreadFilterWorker<A, E> = (value: A, index: number, ctx: MultithreadCtx) => WorkerReturn<boolean, E>;
|
|
94
|
+
type MultithreadFilter = {
|
|
95
|
+
<A, E = never>(values: readonly A[], worker: MultithreadFilterWorker<A, E>, options?: MultithreadParallelOptions): MultithreadOp<readonly A[], E | MultithreadError>;
|
|
96
|
+
<A, E = never, InputE = never>(values: Result<readonly A[], InputE>, worker: MultithreadFilterWorker<A, E>, options?: MultithreadParallelOptions): Promise<Result<readonly A[], E | InputE | MultithreadError>>;
|
|
97
|
+
<A, E = never>(worker: MultithreadFilterWorker<A, E>, options?: MultithreadParallelOptions): <Input extends readonly A[] | Result<readonly A[], unknown>>(values: Input) => Input extends Result<readonly A[], infer InputE> ? Promise<Result<readonly A[], E | InputE | MultithreadError>> : MultithreadOp<readonly A[], E | MultithreadError>;
|
|
98
|
+
};
|
|
99
|
+
type MultithreadFlatMapWorker<A, B, E> = (value: A, index: number, ctx: MultithreadCtx) => WorkerReturn<readonly B[] | B[], E>;
|
|
100
|
+
type MultithreadFlatMap = {
|
|
101
|
+
<A, B, E = never>(values: readonly A[], worker: MultithreadFlatMapWorker<A, B, E>, options?: MultithreadParallelOptions): MultithreadOp<readonly B[], E | MultithreadError>;
|
|
102
|
+
<A, B, E = never, InputE = never>(values: Result<readonly A[], InputE>, worker: MultithreadFlatMapWorker<A, B, E>, options?: MultithreadParallelOptions): Promise<Result<readonly B[], E | InputE | MultithreadError>>;
|
|
103
|
+
<A, B, E = never>(worker: MultithreadFlatMapWorker<A, B, E>, options?: MultithreadParallelOptions): <Input extends readonly A[] | Result<readonly A[], unknown>>(values: Input) => Input extends Result<readonly A[], infer InputE> ? Promise<Result<readonly B[], E | InputE | MultithreadError>> : MultithreadOp<readonly B[], E | MultithreadError>;
|
|
104
|
+
};
|
|
105
|
+
type MultithreadValue<T> = T extends MultithreadOp<infer A, unknown> ? A : never;
|
|
106
|
+
type MultithreadOpError<T> = T extends MultithreadOp<unknown, infer E> ? E : never;
|
|
107
|
+
type MultithreadRace = {
|
|
108
|
+
<A, E>(operations: readonly MultithreadOp<A, E>[]): MultithreadOp<A, E | MultithreadError>;
|
|
109
|
+
<A, E, InputE = never>(operations: Result<readonly MultithreadOp<A, E>[], InputE>): Promise<Result<A, E | InputE | MultithreadError>>;
|
|
110
|
+
<Ops extends readonly MultithreadOp<unknown, unknown>[]>(operations: Ops): MultithreadOp<MultithreadValue<Ops[number]>, MultithreadOpError<Ops[number]> | MultithreadError>;
|
|
111
|
+
<Ops extends readonly MultithreadOp<unknown, unknown>[], InputE = never>(operations: Result<Ops, InputE>): Promise<Result<MultithreadValue<Ops[number]>, MultithreadOpError<Ops[number]> | InputE | MultithreadError>>;
|
|
112
|
+
};
|
|
113
|
+
type MultithreadFirstSuccess = {
|
|
114
|
+
<A, E>(operations: readonly MultithreadOp<A, E>[]): MultithreadOp<A, E | MultithreadError>;
|
|
115
|
+
<A, E, InputE = never>(operations: Result<readonly MultithreadOp<A, E>[], InputE>): Promise<Result<A, E | InputE | MultithreadError>>;
|
|
116
|
+
<Ops extends readonly MultithreadOp<unknown, unknown>[]>(operations: Ops): MultithreadOp<MultithreadValue<Ops[number]>, MultithreadOpError<Ops[number]> | MultithreadError>;
|
|
117
|
+
<Ops extends readonly MultithreadOp<unknown, unknown>[], InputE = never>(operations: Result<Ops, InputE>): Promise<Result<MultithreadValue<Ops[number]>, MultithreadOpError<Ops[number]> | InputE | MultithreadError>>;
|
|
118
|
+
};
|
|
119
|
+
declare namespace multithread_d_exports {
|
|
120
|
+
export { MultithreadCtx, MultithreadError, MultithreadOp, configure, filter, firstSuccess, flatMap, forEach, map, race, run, shutdown, task };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Execute one worker task as a cancelable `MultithreadOp`.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
128
|
+
*
|
|
129
|
+
* const op = Multithread.run((ctx) => (ctx.isCancelled() ? 0 : 42))
|
|
130
|
+
* // => cancelable operation with result() and abort()
|
|
131
|
+
* ```
|
|
132
|
+
*
|
|
133
|
+
* @category Constructors
|
|
134
|
+
*/
|
|
135
|
+
declare const run: MultithreadRun;
|
|
136
|
+
/**
|
|
137
|
+
* Create a reusable worker task factory.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```ts
|
|
141
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
142
|
+
*
|
|
143
|
+
* const create = Multithread.task((ctx) => (ctx.isCancelled() ? 0 : 16))
|
|
144
|
+
* const op = create()
|
|
145
|
+
* // => operation that resolves to 16 when executed
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* @category Constructors
|
|
149
|
+
*/
|
|
150
|
+
declare const task: MultithreadTask;
|
|
151
|
+
/**
|
|
152
|
+
* Map a collection in parallel.
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```ts
|
|
156
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
157
|
+
*
|
|
158
|
+
* const op = Multithread.map([1, 2, 3], (value) => value * 2)
|
|
159
|
+
* // => operation that resolves to [2, 4, 6]
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @category Mapping
|
|
163
|
+
*/
|
|
164
|
+
declare const map: MultithreadMap;
|
|
165
|
+
/**
|
|
166
|
+
* Run side-effecting parallel work for each item.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```ts
|
|
170
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
171
|
+
*
|
|
172
|
+
* const op = Multithread.forEach(["a", "b"], (value) => value.toUpperCase())
|
|
173
|
+
* // => operation that resolves to void after all items complete
|
|
174
|
+
* ```
|
|
175
|
+
*
|
|
176
|
+
* @category Sequencing
|
|
177
|
+
*/
|
|
178
|
+
declare const forEach: MultithreadForEach;
|
|
179
|
+
/**
|
|
180
|
+
* Filter a collection in parallel.
|
|
181
|
+
*
|
|
182
|
+
* @example
|
|
183
|
+
* ```ts
|
|
184
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
185
|
+
*
|
|
186
|
+
* const op = Multithread.filter([1, 2, 3, 4], (value) => value % 2 === 0)
|
|
187
|
+
* // => operation that resolves to [2, 4]
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* @category Filtering
|
|
191
|
+
*/
|
|
192
|
+
declare const filter: MultithreadFilter;
|
|
193
|
+
/**
|
|
194
|
+
* Flat-map a collection in parallel.
|
|
195
|
+
*
|
|
196
|
+
* @example
|
|
197
|
+
* ```ts
|
|
198
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
199
|
+
*
|
|
200
|
+
* const op = Multithread.flatMap([1, 2], (value) => [value, value * 10])
|
|
201
|
+
* // => operation that resolves to [1, 10, 2, 20]
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @category Sequencing
|
|
205
|
+
*/
|
|
206
|
+
declare const flatMap: MultithreadFlatMap;
|
|
207
|
+
/**
|
|
208
|
+
* Resolve with the first successfully completed operation.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```ts
|
|
212
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
213
|
+
*
|
|
214
|
+
* const fast = Multithread.run(() => 1)
|
|
215
|
+
* const slow = Multithread.run(() => 2)
|
|
216
|
+
* const op = Multithread.race([fast, slow])
|
|
217
|
+
* // => operation that resolves with the first finished result
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* @category Combining
|
|
221
|
+
*/
|
|
222
|
+
declare const race: MultithreadRace;
|
|
223
|
+
/**
|
|
224
|
+
* Return the first successful operation, aggregating failures if none succeed.
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```ts
|
|
228
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
229
|
+
*
|
|
230
|
+
* import { Result } from "@nicolastoulemont/std"
|
|
231
|
+
*
|
|
232
|
+
* const fail = Multithread.run(() => Result.err("boom"))
|
|
233
|
+
* const pass = Multithread.run(() => Result.ok(1))
|
|
234
|
+
* const op = Multithread.firstSuccess([fail, pass])
|
|
235
|
+
* // => operation that resolves with 1
|
|
236
|
+
* ```
|
|
237
|
+
*
|
|
238
|
+
* @category Combining
|
|
239
|
+
*/
|
|
240
|
+
declare const firstSuccess: MultithreadFirstSuccess;
|
|
241
|
+
/**
|
|
242
|
+
* Configure max worker count used by the underlying runtime.
|
|
243
|
+
*
|
|
244
|
+
* Must be called before first multithread operation starts.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```ts
|
|
248
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
249
|
+
*
|
|
250
|
+
* const configured = Multithread.configure({ maxWorkers: 4 })
|
|
251
|
+
* // => { _tag: "Ok", value: undefined }
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @category Constructors
|
|
255
|
+
*/
|
|
256
|
+
declare const configure: (config: {
|
|
257
|
+
maxWorkers: number;
|
|
258
|
+
}) => Result<void, MultithreadError>;
|
|
259
|
+
/**
|
|
260
|
+
* Shutdown worker runtime.
|
|
261
|
+
*
|
|
262
|
+
* This function is idempotent.
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```ts
|
|
266
|
+
* import { Multithread } from "@nicolastoulemont/std"
|
|
267
|
+
*
|
|
268
|
+
* const shutdownPromise = Multithread.shutdown()
|
|
269
|
+
* // => Promise<Result<void, MultithreadError>>
|
|
270
|
+
* ```
|
|
271
|
+
*
|
|
272
|
+
* @category Utilities
|
|
273
|
+
*/
|
|
274
|
+
declare const shutdown: () => Promise<Result<void, MultithreadError>>;
|
|
275
|
+
//#endregion
|
|
276
|
+
export { multithread_d_exports as t };
|
|
277
|
+
//# sourceMappingURL=index-By6dNRc4.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-By6dNRc4.d.mts","names":[],"sources":["../src/multithread/multithread.types.ts","../src/multithread/multithread.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { t as TaggedErrorFactory } from "./data.tagged-error.types-CLlJJ3n5.mjs";
|
|
2
|
+
import { i as QueueOptions, n as Queue, r as QueueBoundedOptions } from "./queue.types-CD2LOu37.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/queue/queue.d.ts
|
|
5
|
+
declare namespace queue_d_exports {
|
|
6
|
+
export { QueueAbortedError, QueueClosedError, QueueTaskAbortedError, bounded, is, make, unbounded };
|
|
7
|
+
}
|
|
8
|
+
declare const QueueClosedError_base: TaggedErrorFactory<"QueueClosedError">;
|
|
9
|
+
/**
|
|
10
|
+
* Error raised when enqueueing into a non-open queue.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
15
|
+
*
|
|
16
|
+
* const error = new Queue.QueueClosedError({ state: "draining" })
|
|
17
|
+
* // => { _tag: "QueueClosedError", state: "draining" }
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @category Models
|
|
21
|
+
*/
|
|
22
|
+
declare class QueueClosedError extends QueueClosedError_base<{
|
|
23
|
+
state: "draining" | "aborted";
|
|
24
|
+
}> {}
|
|
25
|
+
declare const QueueAbortedError_base: TaggedErrorFactory<"QueueAbortedError">;
|
|
26
|
+
/**
|
|
27
|
+
* Error raised when queue processing is aborted.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
32
|
+
*
|
|
33
|
+
* const error = new Queue.QueueAbortedError({ reason: "manual" })
|
|
34
|
+
* // => { _tag: "QueueAbortedError", reason: "manual" }
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @category Models
|
|
38
|
+
*/
|
|
39
|
+
declare class QueueAbortedError extends QueueAbortedError_base<{
|
|
40
|
+
reason?: unknown;
|
|
41
|
+
}> {}
|
|
42
|
+
declare const QueueTaskAbortedError_base: TaggedErrorFactory<"QueueTaskAbortedError">;
|
|
43
|
+
/**
|
|
44
|
+
* Error raised when a specific task is aborted.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
49
|
+
*
|
|
50
|
+
* const error = new Queue.QueueTaskAbortedError({ reason: "signal" })
|
|
51
|
+
* // => { _tag: "QueueTaskAbortedError", reason: "signal" }
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @category Models
|
|
55
|
+
*/
|
|
56
|
+
declare class QueueTaskAbortedError extends QueueTaskAbortedError_base<{
|
|
57
|
+
reason?: unknown;
|
|
58
|
+
}> {}
|
|
59
|
+
/**
|
|
60
|
+
* Check if a value is a `Queue`.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
65
|
+
*
|
|
66
|
+
* const queue = Queue.make()
|
|
67
|
+
* const isQueue = Queue.is(queue)
|
|
68
|
+
* // => true
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @category Guards
|
|
72
|
+
*/
|
|
73
|
+
declare const is: (value: unknown) => value is Queue;
|
|
74
|
+
/**
|
|
75
|
+
* Create a queue with default unbounded capacity.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
80
|
+
*
|
|
81
|
+
* const queue = Queue.make()
|
|
82
|
+
* const pending = queue.pending
|
|
83
|
+
* // => 0
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @category Constructors
|
|
87
|
+
*/
|
|
88
|
+
declare const make: (options?: QueueOptions) => Queue;
|
|
89
|
+
/**
|
|
90
|
+
* Create a queue with bounded capacity.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
95
|
+
*
|
|
96
|
+
* const queue = Queue.bounded(2)
|
|
97
|
+
* const size = queue.size
|
|
98
|
+
* // => 0
|
|
99
|
+
* ```
|
|
100
|
+
*
|
|
101
|
+
* @category Constructors
|
|
102
|
+
*/
|
|
103
|
+
declare const bounded: (maxSize: number, options?: QueueBoundedOptions) => Queue;
|
|
104
|
+
/**
|
|
105
|
+
* Create a queue with explicit unbounded capacity.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* import { Queue } from "@nicolastoulemont/std"
|
|
110
|
+
*
|
|
111
|
+
* const queue = Queue.unbounded()
|
|
112
|
+
* const paused = queue.isPaused
|
|
113
|
+
* // => false
|
|
114
|
+
* ```
|
|
115
|
+
*
|
|
116
|
+
* @category Constructors
|
|
117
|
+
*/
|
|
118
|
+
declare const unbounded: (options?: QueueOptions) => Queue;
|
|
119
|
+
//#endregion
|
|
120
|
+
export { queue_d_exports as t };
|
|
121
|
+
//# sourceMappingURL=index-CCo85AdC.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CCo85AdC.d.mts","names":[],"sources":["../src/queue/queue.ts"],"sourcesContent":[],"mappings":";;;;;;;cAsCsB,uBAAA;;;;;;;;;;;;;AAAA;AAgBT,cAAA,gBAAA,SAAyB,qBAAA,CAAA;EAA0E,KAAA,EAAA,UAAA,GAAA,SAAA;AAchH,CAAA,CAAA,CAAA;AAcA,cA5BgH,sBA4B7E,EA5B6E,kBA4BrE,CAAA,mBAAA,CAAA;AAsG3C;AAsWA;AAgBA;AAgBA;;;;;;;;;;cA1fa,iBAAA,SAA0B;;;cAA8D,4BAAA;;;;;;;;;;;;;;cAcxF,qBAAA,SAA8B;;;;;;;;;;;;;;;;;cAsG9B,iCAAgC;;;;;;;;;;;;;;;cAsWhC,iBAAkB,iBAAe;;;;;;;;;;;;;;;cAgBjC,qCAAsC,wBAAsB;;;;;;;;;;;;;;;cAgB5D,sBAAuB,iBAAe"}
|