@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.
Files changed (198) hide show
  1. package/README.md +232 -27
  2. package/dist/adt/index.d.mts +2 -2
  3. package/dist/adt/index.mjs +1 -1
  4. package/dist/adt-DajUZvJe.mjs +2 -0
  5. package/dist/adt-DajUZvJe.mjs.map +1 -0
  6. package/dist/brand/index.d.mts +2 -2
  7. package/dist/brand/index.mjs +1 -1
  8. package/dist/brand-Bia3Vj6l.mjs +2 -0
  9. package/dist/brand-Bia3Vj6l.mjs.map +1 -0
  10. package/dist/context/index.d.mts +2 -0
  11. package/dist/context/index.mjs +1 -0
  12. package/dist/context-CCHj1nab.mjs +2 -0
  13. package/dist/context-CCHj1nab.mjs.map +1 -0
  14. package/dist/context-r8ESJiFn.d.mts +176 -0
  15. package/dist/context-r8ESJiFn.d.mts.map +1 -0
  16. package/dist/data/index.d.mts +2 -2
  17. package/dist/data/index.mjs +1 -1
  18. package/dist/data-CJxw6al9.mjs +2 -0
  19. package/dist/data-CJxw6al9.mjs.map +1 -0
  20. package/dist/data.tagged-error.types-CLlJJ3n5.d.mts +50 -0
  21. package/dist/data.tagged-error.types-CLlJJ3n5.d.mts.map +1 -0
  22. package/dist/{discriminator.types-9PxvrZki.d.mts → discriminator.types-CTURejXz.d.mts} +1 -1
  23. package/dist/discriminator.types-CTURejXz.d.mts.map +1 -0
  24. package/dist/dual-CZhzZslG.mjs +2 -0
  25. package/dist/dual-CZhzZslG.mjs.map +1 -0
  26. package/dist/either/index.d.mts +2 -2
  27. package/dist/either/index.mjs +1 -1
  28. package/dist/either-6BwadiFj.mjs +2 -0
  29. package/dist/either-6BwadiFj.mjs.map +1 -0
  30. package/dist/{equality-CD4_A1Op.mjs → equality-CoyUHWh9.mjs} +1 -1
  31. package/dist/{equality-CD4_A1Op.mjs.map → equality-CoyUHWh9.mjs.map} +1 -1
  32. package/dist/{flow-CYjiodlC.mjs → flow-D8_tllWl.mjs} +1 -1
  33. package/dist/flow-D8_tllWl.mjs.map +1 -0
  34. package/dist/functions/index.d.mts +2 -0
  35. package/dist/functions/index.mjs +1 -0
  36. package/dist/functions-BkevX2Dw.mjs +2 -0
  37. package/dist/functions-BkevX2Dw.mjs.map +1 -0
  38. package/dist/fx/index.d.mts +2 -3
  39. package/dist/fx/index.mjs +1 -1
  40. package/dist/fx-BzxLbf1Q.mjs +2 -0
  41. package/dist/fx-BzxLbf1Q.mjs.map +1 -0
  42. package/dist/fx.runtime-BcC6yMSy.mjs +2 -0
  43. package/dist/fx.runtime-BcC6yMSy.mjs.map +1 -0
  44. package/dist/{fx.types-CDVjDn_3.mjs → fx.types-Bg-Mmdm5.mjs} +1 -1
  45. package/dist/fx.types-Bg-Mmdm5.mjs.map +1 -0
  46. package/dist/{fx.types-B34asVRX.d.mts → fx.types-DeEWEltG.d.mts} +2 -2
  47. package/dist/{fx.types-B34asVRX.d.mts.map → fx.types-DeEWEltG.d.mts.map} +1 -1
  48. package/dist/index-7Lv982Om.d.mts +217 -0
  49. package/dist/index-7Lv982Om.d.mts.map +1 -0
  50. package/dist/index-B_iY5tq0.d.mts +241 -0
  51. package/dist/index-B_iY5tq0.d.mts.map +1 -0
  52. package/dist/index-B_wWGszy.d.mts +129 -0
  53. package/dist/index-B_wWGszy.d.mts.map +1 -0
  54. package/dist/index-BiiE8NS7.d.mts +108 -0
  55. package/dist/index-BiiE8NS7.d.mts.map +1 -0
  56. package/dist/index-By6dNRc4.d.mts +277 -0
  57. package/dist/index-By6dNRc4.d.mts.map +1 -0
  58. package/dist/index-CCo85AdC.d.mts +121 -0
  59. package/dist/index-CCo85AdC.d.mts.map +1 -0
  60. package/dist/index-CUZn-ohG.d.mts +490 -0
  61. package/dist/index-CUZn-ohG.d.mts.map +1 -0
  62. package/dist/index-CugDqdx6.d.mts +464 -0
  63. package/dist/index-CugDqdx6.d.mts.map +1 -0
  64. package/dist/{index-B2l8_CiD.d.mts → index-DEAWPlcI.d.mts} +155 -216
  65. package/dist/index-DEAWPlcI.d.mts.map +1 -0
  66. package/dist/{index-C4v_3f3-.d.mts → index-DKS1g1oC.d.mts} +95 -42
  67. package/dist/index-DKS1g1oC.d.mts.map +1 -0
  68. package/dist/{index-CklRfom5.d.mts → index-DSsDFLGw.d.mts} +263 -368
  69. package/dist/index-DSsDFLGw.d.mts.map +1 -0
  70. package/dist/{index-jeC5jyRh.d.mts → index-DXbYlSnB.d.mts} +64 -101
  71. package/dist/index-DXbYlSnB.d.mts.map +1 -0
  72. package/dist/{index-BzYtgdX0.d.mts → index-DaTvFhZ8.d.mts} +123 -16
  73. package/dist/index-DaTvFhZ8.d.mts.map +1 -0
  74. package/dist/{index-CjZ95Dsv.d.mts → index-Dm2dFysv.d.mts} +188 -202
  75. package/dist/index-Dm2dFysv.d.mts.map +1 -0
  76. package/dist/index.d.mts +23 -16
  77. package/dist/index.mjs +1 -1
  78. package/dist/layer/index.d.mts +2 -0
  79. package/dist/layer/index.mjs +1 -0
  80. package/dist/layer-BttmtDrs.mjs +2 -0
  81. package/dist/layer-BttmtDrs.mjs.map +1 -0
  82. package/dist/layer.types-DgpCIsk_.d.mts +100 -0
  83. package/dist/layer.types-DgpCIsk_.d.mts.map +1 -0
  84. package/dist/multithread/index.d.mts +2 -0
  85. package/dist/multithread/index.mjs +1 -0
  86. package/dist/multithread-xUUh4eLn.mjs +19 -0
  87. package/dist/multithread-xUUh4eLn.mjs.map +1 -0
  88. package/dist/option/index.d.mts +2 -3
  89. package/dist/option/index.mjs +1 -1
  90. package/dist/option-Qt1H-u7c.mjs +2 -0
  91. package/dist/option-Qt1H-u7c.mjs.map +1 -0
  92. package/dist/option.types-DRUm2QiI.mjs +2 -0
  93. package/dist/option.types-DRUm2QiI.mjs.map +1 -0
  94. package/dist/{option.types-ClJiBTdg.d.mts → option.types-DlAb6Sr0.d.mts} +4 -4
  95. package/dist/option.types-DlAb6Sr0.d.mts.map +1 -0
  96. package/dist/order/index.d.mts +2 -0
  97. package/dist/order/index.mjs +1 -0
  98. package/dist/order-D5c4QChk.mjs +2 -0
  99. package/dist/order-D5c4QChk.mjs.map +1 -0
  100. package/dist/pipeable-COGyGMUV.mjs +2 -0
  101. package/dist/pipeable-COGyGMUV.mjs.map +1 -0
  102. package/dist/{pipeable-B4YJA56p.d.mts → pipeable-rfqacPxZ.d.mts} +2 -9
  103. package/dist/{pipeable-B4YJA56p.d.mts.map → pipeable-rfqacPxZ.d.mts.map} +1 -1
  104. package/dist/predicate/index.d.mts +2 -2
  105. package/dist/predicate/index.mjs +1 -1
  106. package/dist/predicate-DUhhQqWY.mjs +2 -0
  107. package/dist/predicate-DUhhQqWY.mjs.map +1 -0
  108. package/dist/provide/index.d.mts +2 -0
  109. package/dist/provide/index.mjs +1 -0
  110. package/dist/provide-B_SqJpCd.mjs +2 -0
  111. package/dist/provide-B_SqJpCd.mjs.map +1 -0
  112. package/dist/queue/index.d.mts +2 -0
  113. package/dist/queue/index.mjs +1 -0
  114. package/dist/queue-CG5izEBS.mjs +2 -0
  115. package/dist/queue-CG5izEBS.mjs.map +1 -0
  116. package/dist/queue.types-CD2LOu37.d.mts +36 -0
  117. package/dist/queue.types-CD2LOu37.d.mts.map +1 -0
  118. package/dist/result/index.d.mts +2 -3
  119. package/dist/result/index.mjs +1 -1
  120. package/dist/result-BEzV0DYC.mjs +2 -0
  121. package/dist/result-BEzV0DYC.mjs.map +1 -0
  122. package/dist/{result.types-HHDzgSTV.d.mts → result.types-_xDAei3-.d.mts} +5 -97
  123. package/dist/result.types-_xDAei3-.d.mts.map +1 -0
  124. package/dist/schedule/index.d.mts +2 -0
  125. package/dist/schedule/index.mjs +1 -0
  126. package/dist/schedule-C6tjcJ1O.mjs +2 -0
  127. package/dist/schedule-C6tjcJ1O.mjs.map +1 -0
  128. package/dist/schedule-DlX2Dg69.d.mts +144 -0
  129. package/dist/schedule-DlX2Dg69.d.mts.map +1 -0
  130. package/dist/scope/index.d.mts +2 -0
  131. package/dist/scope/index.mjs +1 -0
  132. package/dist/scope-CZdp4wKX.d.mts +79 -0
  133. package/dist/scope-CZdp4wKX.d.mts.map +1 -0
  134. package/dist/scope-qwL1VUh2.mjs +2 -0
  135. package/dist/scope-qwL1VUh2.mjs.map +1 -0
  136. package/dist/service/index.d.mts +2 -0
  137. package/dist/service/index.mjs +1 -0
  138. package/dist/service-3PYQTUdH.mjs +2 -0
  139. package/dist/service-3PYQTUdH.mjs.map +1 -0
  140. package/dist/service-DrXU7KJG.d.mts +69 -0
  141. package/dist/service-DrXU7KJG.d.mts.map +1 -0
  142. package/dist/service-resolution-C19smeaO.mjs +2 -0
  143. package/dist/service-resolution-C19smeaO.mjs.map +1 -0
  144. package/package.json +50 -12
  145. package/dist/adt-CkRcY_GA.mjs +0 -2
  146. package/dist/adt-CkRcY_GA.mjs.map +0 -1
  147. package/dist/apply-fn.types-0g_9eXRy.d.mts +0 -8
  148. package/dist/apply-fn.types-0g_9eXRy.d.mts.map +0 -1
  149. package/dist/brand-Gy0kW6-n.mjs +0 -2
  150. package/dist/brand-Gy0kW6-n.mjs.map +0 -1
  151. package/dist/data-C0_3MGwm.mjs +0 -2
  152. package/dist/data-C0_3MGwm.mjs.map +0 -1
  153. package/dist/discriminator.types-9PxvrZki.d.mts.map +0 -1
  154. package/dist/either-CPzK-s8W.mjs +0 -2
  155. package/dist/either-CPzK-s8W.mjs.map +0 -1
  156. package/dist/err/index.d.mts +0 -2
  157. package/dist/err/index.mjs +0 -1
  158. package/dist/err-3KpQ4pj9.mjs +0 -2
  159. package/dist/err-3KpQ4pj9.mjs.map +0 -1
  160. package/dist/flow/index.d.mts +0 -2
  161. package/dist/flow/index.mjs +0 -1
  162. package/dist/flow-CYjiodlC.mjs.map +0 -1
  163. package/dist/fx-vqywVJhV.mjs +0 -2
  164. package/dist/fx-vqywVJhV.mjs.map +0 -1
  165. package/dist/fx.types-CDVjDn_3.mjs.map +0 -1
  166. package/dist/index-8Ne4GdOG.d.mts +0 -288
  167. package/dist/index-8Ne4GdOG.d.mts.map +0 -1
  168. package/dist/index-B2l8_CiD.d.mts.map +0 -1
  169. package/dist/index-BOrJQBPO.d.mts +0 -80
  170. package/dist/index-BOrJQBPO.d.mts.map +0 -1
  171. package/dist/index-BsXtpnw-.d.mts +0 -225
  172. package/dist/index-BsXtpnw-.d.mts.map +0 -1
  173. package/dist/index-BzYtgdX0.d.mts.map +0 -1
  174. package/dist/index-C4v_3f3-.d.mts.map +0 -1
  175. package/dist/index-CjZ95Dsv.d.mts.map +0 -1
  176. package/dist/index-CklRfom5.d.mts.map +0 -1
  177. package/dist/index-DZdmFtjA.d.mts +0 -79
  178. package/dist/index-DZdmFtjA.d.mts.map +0 -1
  179. package/dist/index-a4MEBZZ1.d.mts +0 -850
  180. package/dist/index-a4MEBZZ1.d.mts.map +0 -1
  181. package/dist/index-jeC5jyRh.d.mts.map +0 -1
  182. package/dist/option-DawZC1cE.mjs +0 -2
  183. package/dist/option-DawZC1cE.mjs.map +0 -1
  184. package/dist/option.types-ClJiBTdg.d.mts.map +0 -1
  185. package/dist/pipe/index.d.mts +0 -2
  186. package/dist/pipe/index.mjs +0 -1
  187. package/dist/pipe-BPpJyZf7.mjs +0 -2
  188. package/dist/pipe-BPpJyZf7.mjs.map +0 -1
  189. package/dist/pipeable-BA0mXhs4.mjs +0 -2
  190. package/dist/pipeable-BA0mXhs4.mjs.map +0 -1
  191. package/dist/predicate-Cy_oHA1Q.mjs +0 -2
  192. package/dist/predicate-Cy_oHA1Q.mjs.map +0 -1
  193. package/dist/result-CgGYLp0L.mjs +0 -2
  194. package/dist/result-CgGYLp0L.mjs.map +0 -1
  195. package/dist/result.types-HHDzgSTV.d.mts.map +0 -1
  196. /package/dist/{chunk-DAexk1S7.mjs → chunk-C934ptG5.mjs} +0 -0
  197. /package/dist/{option-Bb-taghv.mjs → option-CBCwzF0L.mjs} +0 -0
  198. /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"}