pure-effect 0.13.0 → 0.15.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/CHANGELOG.md +64 -0
- package/README.md +296 -124
- package/index.d.ts +1118 -134
- package/index.js +1029 -462
- package/package.json +3 -1
package/index.d.ts
CHANGED
|
@@ -50,28 +50,58 @@ export type RetryOptions = {
|
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
|
-
* `E` is the error the node contributes to its pipeline
|
|
54
|
-
*
|
|
55
|
-
*
|
|
53
|
+
* `E` is the error the node contributes to its pipeline. A Retry contributes two kinds: an abort the
|
|
54
|
+
* wrapped tree returned, which is not retried and leaves unwrapped, and the exhaustion failure that
|
|
55
|
+
* follows an I/O fault the retry loop could not get past.
|
|
56
56
|
*/
|
|
57
57
|
export type RetryState<T, E = unknown, Ctx = unknown> = {
|
|
58
58
|
type: 'Retry';
|
|
59
59
|
effect: Effect<T, any, Ctx>;
|
|
60
|
-
options: RetryOptions & { onExhausted?: (error: RetryExhaustedError
|
|
60
|
+
options: RetryOptions & { onExhausted?: (error: RetryExhaustedError) => Effect<T, any, Ctx> };
|
|
61
61
|
next(value: T): Effect<T, E, Ctx>;
|
|
62
62
|
initialInput?: unknown;
|
|
63
63
|
};
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
/**
|
|
66
|
+
* The error a `Retry` fails with once every attempt has hit an I/O fault. `lastError` is what the last
|
|
67
|
+
* attempt threw: a Command's function throwing, or a nested `Retry` running out. It is never a `Failure`
|
|
68
|
+
* a step returned, since that is an abort and is not retried, so the wrapped tree's error type cannot
|
|
69
|
+
* reach it. Nothing declares what a function throws, so `Retry` leaves `Thrown` as `unknown`; pass it
|
|
70
|
+
* only to annotate a value whose thrown type you already know.
|
|
71
|
+
*/
|
|
72
|
+
export type RetryExhaustedError<Thrown = unknown> = {
|
|
66
73
|
retryExhausted: true;
|
|
67
|
-
lastError:
|
|
74
|
+
lastError: Thrown;
|
|
68
75
|
attempts: number;
|
|
69
76
|
};
|
|
70
77
|
|
|
71
|
-
export type
|
|
78
|
+
export type ParallelOptions = {
|
|
79
|
+
/** Most branches in flight at once. Results and paths stay in array order regardless. */
|
|
80
|
+
limit?: number;
|
|
81
|
+
/** Hand every branch's outcome to `next` instead of failing on the first one. */
|
|
82
|
+
settled?: boolean;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/** What a settled `Parallel` hands to `next`: one outcome per branch, in array order. */
|
|
86
|
+
export type ParallelOutcomes<T extends readonly unknown[], E> = {
|
|
87
|
+
[K in keyof T]: SuccessState<T[K]> | FailureState<E>;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* `V` is what `next` receives, which is the branch values normally and the branch outcomes under
|
|
92
|
+
* `settled`. It defaults to `T`, so every non-settled use reads as it always did.
|
|
93
|
+
*/
|
|
94
|
+
export type ParallelState<
|
|
95
|
+
T extends readonly unknown[],
|
|
96
|
+
R,
|
|
97
|
+
E = unknown,
|
|
98
|
+
Ctx = unknown,
|
|
99
|
+
V extends readonly unknown[] = T
|
|
100
|
+
> = {
|
|
72
101
|
type: 'Parallel';
|
|
73
102
|
effects: { [K in keyof T]: Effect<T[K], E, Ctx> };
|
|
74
|
-
next(values: [...
|
|
103
|
+
next(values: [...V]): Effect<R, E, Ctx>;
|
|
104
|
+
options?: ParallelOptions;
|
|
75
105
|
initialInput?: unknown;
|
|
76
106
|
};
|
|
77
107
|
|
|
@@ -92,7 +122,17 @@ export declare function Failure<E = unknown>(error: E, initialInput?: unknown):
|
|
|
92
122
|
*
|
|
93
123
|
* A `meta.name` becomes this Command's identity, which keeps it independent of how `cmd` was declared
|
|
94
124
|
* and immune to minification. Without one the identity falls back to `cmd.name`, then to 'anonymous'.
|
|
125
|
+
*
|
|
126
|
+
* The first overload is the default `next`, where the value is the function's result. Without it, a
|
|
127
|
+
* `Command(fn)` inside a step with an annotated return type had its value type inferred from the
|
|
128
|
+
* annotation, as `unknown`, rather than from `fn`, and `Retry(Command(fn))` failed to compile there.
|
|
95
129
|
*/
|
|
130
|
+
export declare function Command<R, E = unknown, Ctx = unknown>(
|
|
131
|
+
cmd: (signal?: AbortSignal) => Promise<R> | R,
|
|
132
|
+
next?: undefined,
|
|
133
|
+
meta?: CommandMeta
|
|
134
|
+
): CommandState<R, R, E, Ctx>;
|
|
135
|
+
|
|
96
136
|
export declare function Command<R, T = R, E = unknown, Ctx = unknown>(
|
|
97
137
|
cmd: (signal?: AbortSignal) => Promise<R> | R,
|
|
98
138
|
next?: (result: R) => Effect<T, E, Ctx>,
|
|
@@ -106,125 +146,897 @@ export declare function Ask<T, E = unknown, Ctx = unknown>(
|
|
|
106
146
|
/**
|
|
107
147
|
* With `onExhausted`, the exhaustion failure never escapes: the fallback Effect runs instead, its
|
|
108
148
|
* success feeds `next`, and its failure propagates unwrapped, so the node's declared error is the
|
|
109
|
-
* fallback's own error type
|
|
110
|
-
* `
|
|
149
|
+
* fallback's own error type alongside `E`, since an abort the wrapped tree returned reaches neither
|
|
150
|
+
* the retry loop nor the fallback and leaves as itself. `onExhausted` is a per-use option, and so is every other retry
|
|
151
|
+
* option: there are no configured defaults for one to be carried by.
|
|
111
152
|
*/
|
|
112
153
|
export declare function Retry<T, E = unknown, E2 = unknown, Ctx = unknown>(
|
|
113
154
|
effect: Effect<T, E, Ctx>,
|
|
114
|
-
options: RetryOptions & { onExhausted: (error: RetryExhaustedError
|
|
115
|
-
): RetryState<T, E2, Ctx>;
|
|
155
|
+
options: RetryOptions & { onExhausted: (error: RetryExhaustedError) => Effect<T, E2, Ctx> }
|
|
156
|
+
): RetryState<T, E | E2, Ctx>;
|
|
116
157
|
|
|
117
158
|
/**
|
|
118
|
-
* Without `onExhausted`,
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
159
|
+
* Without `onExhausted`, an I/O fault the retry loop cannot get past arrives as
|
|
160
|
+
* `Failure({ retryExhausted: true, lastError, attempts })`, with whatever was thrown as `lastError`.
|
|
161
|
+
* An abort the wrapped tree returned is not retried and is not wrapped, so `E` reaches the pipeline
|
|
162
|
+
* as itself and never as `lastError`.
|
|
122
163
|
*/
|
|
123
164
|
export declare function Retry<T, E = unknown, Ctx = unknown>(
|
|
124
165
|
effect: Effect<T, E, Ctx>,
|
|
125
166
|
options?: RetryOptions
|
|
126
|
-
): RetryState<T,
|
|
167
|
+
): RetryState<T, E | RetryExhaustedError, Ctx>;
|
|
127
168
|
|
|
128
169
|
/**
|
|
129
170
|
* `next` is optional and defaults to `(values) => Success(values)`, same as `Command`'s default,
|
|
130
|
-
* so a bare `Parallel(effects)` resolves to the ordered array of success values.
|
|
171
|
+
* so a bare `Parallel(effects)` resolves to the ordered array of success values. The second argument
|
|
172
|
+
* is `next` or the options, whichever it looks like.
|
|
173
|
+
*
|
|
174
|
+
* The non-settled overloads accept only `settled?: false`. A `settled` known only as a `boolean`, from a
|
|
175
|
+
* shared options object or a caller's `ParallelOptions`, could be `true` at runtime, and matching it to
|
|
176
|
+
* an overload that types `next` as the values let a batch compile while it read outcome objects as
|
|
177
|
+
* values. It matches no overload instead: write `settled: true` inline, or add `as const`.
|
|
131
178
|
*/
|
|
132
|
-
export declare function Parallel<T extends readonly unknown[], E = unknown, Ctx = unknown>(
|
|
133
|
-
[K in keyof T]: Effect<T[K], E, Ctx
|
|
134
|
-
|
|
179
|
+
export declare function Parallel<T extends readonly unknown[], E = unknown, Ctx = unknown>(
|
|
180
|
+
effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
|
|
181
|
+
options: ParallelOptions & { settled: true }
|
|
182
|
+
): ParallelState<[...T], ParallelOutcomes<T, E>, E, Ctx, ParallelOutcomes<T, E>>;
|
|
135
183
|
|
|
136
184
|
export declare function Parallel<T extends readonly unknown[], R, E = unknown, Ctx = unknown>(
|
|
137
185
|
effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
|
|
138
|
-
next: (values:
|
|
186
|
+
next: (values: ParallelOutcomes<T, E>) => Effect<R, E, Ctx>,
|
|
187
|
+
options: ParallelOptions & { settled: true }
|
|
188
|
+
): ParallelState<[...T], R, E, Ctx, ParallelOutcomes<T, E>>;
|
|
189
|
+
|
|
190
|
+
export declare function Parallel<T extends readonly unknown[], E = unknown, Ctx = unknown>(
|
|
191
|
+
effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
|
|
192
|
+
options?: ParallelOptions & { settled?: false }
|
|
193
|
+
): ParallelState<[...T], [...T], E, Ctx>;
|
|
194
|
+
|
|
195
|
+
export declare function Parallel<T extends readonly unknown[], R, E = unknown, Ctx = unknown>(
|
|
196
|
+
effects: { [K in keyof T]: Effect<T[K], E, Ctx> },
|
|
197
|
+
next: (values: [...T]) => Effect<R, E, Ctx>,
|
|
198
|
+
options?: ParallelOptions & { settled?: false }
|
|
139
199
|
): ParallelState<[...T], R, E, Ctx>;
|
|
140
200
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
201
|
+
/**
|
|
202
|
+
* Composes steps into a pipeline: each step receives the previous step's success value, and a Failure
|
|
203
|
+
* from any step stops the pipeline. Typed for 1 to 20 steps, the same ceiling as Effect-TS's `pipe`. A
|
|
204
|
+
* pipeline is itself a step, so a longer one nests: `effectPipe(effectPipe(s1, s2), effectPipe(s3, s4))`.
|
|
205
|
+
* Each step's context type is its own, and the pipeline's is all of them together, so a step that reads
|
|
206
|
+
* no context does not erase a later step's, and `runEffect` asks for every context a step reads.
|
|
207
|
+
*/
|
|
208
|
+
export declare function effectPipe<T0, T1, E1 = unknown, C1 = unknown>(
|
|
209
|
+
f1: (value: T0) => Effect<T1, E1, C1>
|
|
210
|
+
): (start: T0) => Effect<T1, E1, C1>;
|
|
211
|
+
|
|
212
|
+
export declare function effectPipe<T0, T1, T2, E1 = unknown, E2 = unknown, C1 = unknown, C2 = unknown>(
|
|
213
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
214
|
+
f2: (value: T1) => Effect<T2, E2, C2>
|
|
215
|
+
): (start: T0) => Effect<T2, E1 | E2, C1 & C2>;
|
|
216
|
+
|
|
217
|
+
export declare function effectPipe<
|
|
218
|
+
T0,
|
|
219
|
+
T1,
|
|
220
|
+
T2,
|
|
221
|
+
T3,
|
|
222
|
+
E1 = unknown,
|
|
223
|
+
E2 = unknown,
|
|
224
|
+
E3 = unknown,
|
|
225
|
+
C1 = unknown,
|
|
226
|
+
C2 = unknown,
|
|
227
|
+
C3 = unknown
|
|
228
|
+
>(
|
|
229
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
230
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
231
|
+
f3: (value: T2) => Effect<T3, E3, C3>
|
|
232
|
+
): (start: T0) => Effect<T3, E1 | E2 | E3, C1 & C2 & C3>;
|
|
233
|
+
|
|
234
|
+
export declare function effectPipe<
|
|
235
|
+
T0,
|
|
236
|
+
T1,
|
|
237
|
+
T2,
|
|
238
|
+
T3,
|
|
239
|
+
T4,
|
|
240
|
+
E1 = unknown,
|
|
241
|
+
E2 = unknown,
|
|
242
|
+
E3 = unknown,
|
|
243
|
+
E4 = unknown,
|
|
244
|
+
C1 = unknown,
|
|
245
|
+
C2 = unknown,
|
|
246
|
+
C3 = unknown,
|
|
247
|
+
C4 = unknown
|
|
248
|
+
>(
|
|
249
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
250
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
251
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
252
|
+
f4: (value: T3) => Effect<T4, E4, C4>
|
|
253
|
+
): (start: T0) => Effect<T4, E1 | E2 | E3 | E4, C1 & C2 & C3 & C4>;
|
|
254
|
+
|
|
255
|
+
export declare function effectPipe<
|
|
256
|
+
T0,
|
|
257
|
+
T1,
|
|
258
|
+
T2,
|
|
259
|
+
T3,
|
|
260
|
+
T4,
|
|
261
|
+
T5,
|
|
262
|
+
E1 = unknown,
|
|
263
|
+
E2 = unknown,
|
|
264
|
+
E3 = unknown,
|
|
265
|
+
E4 = unknown,
|
|
266
|
+
E5 = unknown,
|
|
267
|
+
C1 = unknown,
|
|
268
|
+
C2 = unknown,
|
|
269
|
+
C3 = unknown,
|
|
270
|
+
C4 = unknown,
|
|
271
|
+
C5 = unknown
|
|
272
|
+
>(
|
|
273
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
274
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
275
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
276
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
277
|
+
f5: (value: T4) => Effect<T5, E5, C5>
|
|
278
|
+
): (start: T0) => Effect<T5, E1 | E2 | E3 | E4 | E5, C1 & C2 & C3 & C4 & C5>;
|
|
279
|
+
|
|
280
|
+
export declare function effectPipe<
|
|
281
|
+
T0,
|
|
282
|
+
T1,
|
|
283
|
+
T2,
|
|
284
|
+
T3,
|
|
285
|
+
T4,
|
|
286
|
+
T5,
|
|
287
|
+
T6,
|
|
288
|
+
E1 = unknown,
|
|
289
|
+
E2 = unknown,
|
|
290
|
+
E3 = unknown,
|
|
291
|
+
E4 = unknown,
|
|
292
|
+
E5 = unknown,
|
|
293
|
+
E6 = unknown,
|
|
294
|
+
C1 = unknown,
|
|
295
|
+
C2 = unknown,
|
|
296
|
+
C3 = unknown,
|
|
297
|
+
C4 = unknown,
|
|
298
|
+
C5 = unknown,
|
|
299
|
+
C6 = unknown
|
|
300
|
+
>(
|
|
301
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
302
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
303
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
304
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
305
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
306
|
+
f6: (value: T5) => Effect<T6, E6, C6>
|
|
307
|
+
): (start: T0) => Effect<T6, E1 | E2 | E3 | E4 | E5 | E6, C1 & C2 & C3 & C4 & C5 & C6>;
|
|
308
|
+
|
|
309
|
+
export declare function effectPipe<
|
|
310
|
+
T0,
|
|
311
|
+
T1,
|
|
312
|
+
T2,
|
|
313
|
+
T3,
|
|
314
|
+
T4,
|
|
315
|
+
T5,
|
|
316
|
+
T6,
|
|
317
|
+
T7,
|
|
318
|
+
E1 = unknown,
|
|
319
|
+
E2 = unknown,
|
|
320
|
+
E3 = unknown,
|
|
321
|
+
E4 = unknown,
|
|
322
|
+
E5 = unknown,
|
|
323
|
+
E6 = unknown,
|
|
324
|
+
E7 = unknown,
|
|
325
|
+
C1 = unknown,
|
|
326
|
+
C2 = unknown,
|
|
327
|
+
C3 = unknown,
|
|
328
|
+
C4 = unknown,
|
|
329
|
+
C5 = unknown,
|
|
330
|
+
C6 = unknown,
|
|
331
|
+
C7 = unknown
|
|
332
|
+
>(
|
|
333
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
334
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
335
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
336
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
337
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
338
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
339
|
+
f7: (value: T6) => Effect<T7, E7, C7>
|
|
340
|
+
): (start: T0) => Effect<T7, E1 | E2 | E3 | E4 | E5 | E6 | E7, C1 & C2 & C3 & C4 & C5 & C6 & C7>;
|
|
341
|
+
|
|
342
|
+
export declare function effectPipe<
|
|
343
|
+
T0,
|
|
344
|
+
T1,
|
|
345
|
+
T2,
|
|
346
|
+
T3,
|
|
347
|
+
T4,
|
|
348
|
+
T5,
|
|
349
|
+
T6,
|
|
350
|
+
T7,
|
|
351
|
+
T8,
|
|
352
|
+
E1 = unknown,
|
|
353
|
+
E2 = unknown,
|
|
354
|
+
E3 = unknown,
|
|
355
|
+
E4 = unknown,
|
|
356
|
+
E5 = unknown,
|
|
357
|
+
E6 = unknown,
|
|
358
|
+
E7 = unknown,
|
|
359
|
+
E8 = unknown,
|
|
360
|
+
C1 = unknown,
|
|
361
|
+
C2 = unknown,
|
|
362
|
+
C3 = unknown,
|
|
363
|
+
C4 = unknown,
|
|
364
|
+
C5 = unknown,
|
|
365
|
+
C6 = unknown,
|
|
366
|
+
C7 = unknown,
|
|
367
|
+
C8 = unknown
|
|
368
|
+
>(
|
|
369
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
370
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
371
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
372
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
373
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
374
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
375
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
376
|
+
f8: (value: T7) => Effect<T8, E8, C8>
|
|
377
|
+
): (start: T0) => Effect<T8, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8>;
|
|
378
|
+
|
|
379
|
+
export declare function effectPipe<
|
|
380
|
+
T0,
|
|
381
|
+
T1,
|
|
382
|
+
T2,
|
|
383
|
+
T3,
|
|
384
|
+
T4,
|
|
385
|
+
T5,
|
|
386
|
+
T6,
|
|
387
|
+
T7,
|
|
388
|
+
T8,
|
|
389
|
+
T9,
|
|
390
|
+
E1 = unknown,
|
|
391
|
+
E2 = unknown,
|
|
392
|
+
E3 = unknown,
|
|
393
|
+
E4 = unknown,
|
|
394
|
+
E5 = unknown,
|
|
395
|
+
E6 = unknown,
|
|
396
|
+
E7 = unknown,
|
|
397
|
+
E8 = unknown,
|
|
398
|
+
E9 = unknown,
|
|
399
|
+
C1 = unknown,
|
|
400
|
+
C2 = unknown,
|
|
401
|
+
C3 = unknown,
|
|
402
|
+
C4 = unknown,
|
|
403
|
+
C5 = unknown,
|
|
404
|
+
C6 = unknown,
|
|
405
|
+
C7 = unknown,
|
|
406
|
+
C8 = unknown,
|
|
407
|
+
C9 = unknown
|
|
408
|
+
>(
|
|
409
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
410
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
411
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
412
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
413
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
414
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
415
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
416
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
417
|
+
f9: (value: T8) => Effect<T9, E9, C9>
|
|
418
|
+
): (start: T0) => Effect<T9, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9>;
|
|
419
|
+
|
|
420
|
+
export declare function effectPipe<
|
|
421
|
+
T0,
|
|
422
|
+
T1,
|
|
423
|
+
T2,
|
|
424
|
+
T3,
|
|
425
|
+
T4,
|
|
426
|
+
T5,
|
|
427
|
+
T6,
|
|
428
|
+
T7,
|
|
429
|
+
T8,
|
|
430
|
+
T9,
|
|
431
|
+
T10,
|
|
432
|
+
E1 = unknown,
|
|
433
|
+
E2 = unknown,
|
|
434
|
+
E3 = unknown,
|
|
435
|
+
E4 = unknown,
|
|
436
|
+
E5 = unknown,
|
|
437
|
+
E6 = unknown,
|
|
438
|
+
E7 = unknown,
|
|
439
|
+
E8 = unknown,
|
|
440
|
+
E9 = unknown,
|
|
441
|
+
E10 = unknown,
|
|
442
|
+
C1 = unknown,
|
|
443
|
+
C2 = unknown,
|
|
444
|
+
C3 = unknown,
|
|
445
|
+
C4 = unknown,
|
|
446
|
+
C5 = unknown,
|
|
447
|
+
C6 = unknown,
|
|
448
|
+
C7 = unknown,
|
|
449
|
+
C8 = unknown,
|
|
450
|
+
C9 = unknown,
|
|
451
|
+
C10 = unknown
|
|
452
|
+
>(
|
|
453
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
454
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
455
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
456
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
457
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
458
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
459
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
460
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
461
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
462
|
+
f10: (value: T9) => Effect<T10, E10, C10>
|
|
463
|
+
): (
|
|
464
|
+
start: T0
|
|
465
|
+
) => Effect<T10, E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10, C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10>;
|
|
466
|
+
|
|
467
|
+
export declare function effectPipe<
|
|
468
|
+
T0,
|
|
469
|
+
T1,
|
|
470
|
+
T2,
|
|
471
|
+
T3,
|
|
472
|
+
T4,
|
|
473
|
+
T5,
|
|
474
|
+
T6,
|
|
475
|
+
T7,
|
|
476
|
+
T8,
|
|
477
|
+
T9,
|
|
478
|
+
T10,
|
|
479
|
+
T11,
|
|
480
|
+
E1 = unknown,
|
|
481
|
+
E2 = unknown,
|
|
482
|
+
E3 = unknown,
|
|
483
|
+
E4 = unknown,
|
|
484
|
+
E5 = unknown,
|
|
485
|
+
E6 = unknown,
|
|
486
|
+
E7 = unknown,
|
|
487
|
+
E8 = unknown,
|
|
488
|
+
E9 = unknown,
|
|
489
|
+
E10 = unknown,
|
|
490
|
+
E11 = unknown,
|
|
491
|
+
C1 = unknown,
|
|
492
|
+
C2 = unknown,
|
|
493
|
+
C3 = unknown,
|
|
494
|
+
C4 = unknown,
|
|
495
|
+
C5 = unknown,
|
|
496
|
+
C6 = unknown,
|
|
497
|
+
C7 = unknown,
|
|
498
|
+
C8 = unknown,
|
|
499
|
+
C9 = unknown,
|
|
500
|
+
C10 = unknown,
|
|
501
|
+
C11 = unknown
|
|
502
|
+
>(
|
|
503
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
504
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
505
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
506
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
507
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
508
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
509
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
510
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
511
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
512
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
513
|
+
f11: (value: T10) => Effect<T11, E11, C11>
|
|
514
|
+
): (
|
|
515
|
+
start: T0
|
|
516
|
+
) => Effect<
|
|
517
|
+
T11,
|
|
518
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11,
|
|
519
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11
|
|
520
|
+
>;
|
|
144
521
|
|
|
145
|
-
export declare function effectPipe<
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
522
|
+
export declare function effectPipe<
|
|
523
|
+
T0,
|
|
524
|
+
T1,
|
|
525
|
+
T2,
|
|
526
|
+
T3,
|
|
527
|
+
T4,
|
|
528
|
+
T5,
|
|
529
|
+
T6,
|
|
530
|
+
T7,
|
|
531
|
+
T8,
|
|
532
|
+
T9,
|
|
533
|
+
T10,
|
|
534
|
+
T11,
|
|
535
|
+
T12,
|
|
536
|
+
E1 = unknown,
|
|
537
|
+
E2 = unknown,
|
|
538
|
+
E3 = unknown,
|
|
539
|
+
E4 = unknown,
|
|
540
|
+
E5 = unknown,
|
|
541
|
+
E6 = unknown,
|
|
542
|
+
E7 = unknown,
|
|
543
|
+
E8 = unknown,
|
|
544
|
+
E9 = unknown,
|
|
545
|
+
E10 = unknown,
|
|
546
|
+
E11 = unknown,
|
|
547
|
+
E12 = unknown,
|
|
548
|
+
C1 = unknown,
|
|
549
|
+
C2 = unknown,
|
|
550
|
+
C3 = unknown,
|
|
551
|
+
C4 = unknown,
|
|
552
|
+
C5 = unknown,
|
|
553
|
+
C6 = unknown,
|
|
554
|
+
C7 = unknown,
|
|
555
|
+
C8 = unknown,
|
|
556
|
+
C9 = unknown,
|
|
557
|
+
C10 = unknown,
|
|
558
|
+
C11 = unknown,
|
|
559
|
+
C12 = unknown
|
|
560
|
+
>(
|
|
561
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
562
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
563
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
564
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
565
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
566
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
567
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
568
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
569
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
570
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
571
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
572
|
+
f12: (value: T11) => Effect<T12, E12, C12>
|
|
573
|
+
): (
|
|
574
|
+
start: T0
|
|
575
|
+
) => Effect<
|
|
576
|
+
T12,
|
|
577
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12,
|
|
578
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12
|
|
579
|
+
>;
|
|
580
|
+
|
|
581
|
+
export declare function effectPipe<
|
|
582
|
+
T0,
|
|
583
|
+
T1,
|
|
584
|
+
T2,
|
|
585
|
+
T3,
|
|
586
|
+
T4,
|
|
587
|
+
T5,
|
|
588
|
+
T6,
|
|
589
|
+
T7,
|
|
590
|
+
T8,
|
|
591
|
+
T9,
|
|
592
|
+
T10,
|
|
593
|
+
T11,
|
|
594
|
+
T12,
|
|
595
|
+
T13,
|
|
596
|
+
E1 = unknown,
|
|
597
|
+
E2 = unknown,
|
|
598
|
+
E3 = unknown,
|
|
599
|
+
E4 = unknown,
|
|
600
|
+
E5 = unknown,
|
|
601
|
+
E6 = unknown,
|
|
602
|
+
E7 = unknown,
|
|
603
|
+
E8 = unknown,
|
|
604
|
+
E9 = unknown,
|
|
605
|
+
E10 = unknown,
|
|
606
|
+
E11 = unknown,
|
|
607
|
+
E12 = unknown,
|
|
608
|
+
E13 = unknown,
|
|
609
|
+
C1 = unknown,
|
|
610
|
+
C2 = unknown,
|
|
611
|
+
C3 = unknown,
|
|
612
|
+
C4 = unknown,
|
|
613
|
+
C5 = unknown,
|
|
614
|
+
C6 = unknown,
|
|
615
|
+
C7 = unknown,
|
|
616
|
+
C8 = unknown,
|
|
617
|
+
C9 = unknown,
|
|
618
|
+
C10 = unknown,
|
|
619
|
+
C11 = unknown,
|
|
620
|
+
C12 = unknown,
|
|
621
|
+
C13 = unknown
|
|
622
|
+
>(
|
|
623
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
624
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
625
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
626
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
627
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
628
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
629
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
630
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
631
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
632
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
633
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
634
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
635
|
+
f13: (value: T12) => Effect<T13, E13, C13>
|
|
636
|
+
): (
|
|
637
|
+
start: T0
|
|
638
|
+
) => Effect<
|
|
639
|
+
T13,
|
|
640
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13,
|
|
641
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13
|
|
642
|
+
>;
|
|
643
|
+
|
|
644
|
+
export declare function effectPipe<
|
|
645
|
+
T0,
|
|
646
|
+
T1,
|
|
647
|
+
T2,
|
|
648
|
+
T3,
|
|
649
|
+
T4,
|
|
650
|
+
T5,
|
|
651
|
+
T6,
|
|
652
|
+
T7,
|
|
653
|
+
T8,
|
|
654
|
+
T9,
|
|
655
|
+
T10,
|
|
656
|
+
T11,
|
|
657
|
+
T12,
|
|
658
|
+
T13,
|
|
659
|
+
T14,
|
|
660
|
+
E1 = unknown,
|
|
661
|
+
E2 = unknown,
|
|
662
|
+
E3 = unknown,
|
|
663
|
+
E4 = unknown,
|
|
664
|
+
E5 = unknown,
|
|
665
|
+
E6 = unknown,
|
|
666
|
+
E7 = unknown,
|
|
667
|
+
E8 = unknown,
|
|
668
|
+
E9 = unknown,
|
|
669
|
+
E10 = unknown,
|
|
670
|
+
E11 = unknown,
|
|
671
|
+
E12 = unknown,
|
|
672
|
+
E13 = unknown,
|
|
673
|
+
E14 = unknown,
|
|
674
|
+
C1 = unknown,
|
|
675
|
+
C2 = unknown,
|
|
676
|
+
C3 = unknown,
|
|
677
|
+
C4 = unknown,
|
|
678
|
+
C5 = unknown,
|
|
679
|
+
C6 = unknown,
|
|
680
|
+
C7 = unknown,
|
|
681
|
+
C8 = unknown,
|
|
682
|
+
C9 = unknown,
|
|
683
|
+
C10 = unknown,
|
|
684
|
+
C11 = unknown,
|
|
685
|
+
C12 = unknown,
|
|
686
|
+
C13 = unknown,
|
|
687
|
+
C14 = unknown
|
|
688
|
+
>(
|
|
689
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
690
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
691
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
692
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
693
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
694
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
695
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
696
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
697
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
698
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
699
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
700
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
701
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
702
|
+
f14: (value: T13) => Effect<T14, E14, C14>
|
|
703
|
+
): (
|
|
704
|
+
start: T0
|
|
705
|
+
) => Effect<
|
|
706
|
+
T14,
|
|
707
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14,
|
|
708
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14
|
|
709
|
+
>;
|
|
149
710
|
|
|
150
|
-
export declare function effectPipe<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
711
|
+
export declare function effectPipe<
|
|
712
|
+
T0,
|
|
713
|
+
T1,
|
|
714
|
+
T2,
|
|
715
|
+
T3,
|
|
716
|
+
T4,
|
|
717
|
+
T5,
|
|
718
|
+
T6,
|
|
719
|
+
T7,
|
|
720
|
+
T8,
|
|
721
|
+
T9,
|
|
722
|
+
T10,
|
|
723
|
+
T11,
|
|
724
|
+
T12,
|
|
725
|
+
T13,
|
|
726
|
+
T14,
|
|
727
|
+
T15,
|
|
728
|
+
E1 = unknown,
|
|
729
|
+
E2 = unknown,
|
|
730
|
+
E3 = unknown,
|
|
731
|
+
E4 = unknown,
|
|
732
|
+
E5 = unknown,
|
|
733
|
+
E6 = unknown,
|
|
734
|
+
E7 = unknown,
|
|
735
|
+
E8 = unknown,
|
|
736
|
+
E9 = unknown,
|
|
737
|
+
E10 = unknown,
|
|
738
|
+
E11 = unknown,
|
|
739
|
+
E12 = unknown,
|
|
740
|
+
E13 = unknown,
|
|
741
|
+
E14 = unknown,
|
|
742
|
+
E15 = unknown,
|
|
743
|
+
C1 = unknown,
|
|
744
|
+
C2 = unknown,
|
|
745
|
+
C3 = unknown,
|
|
746
|
+
C4 = unknown,
|
|
747
|
+
C5 = unknown,
|
|
748
|
+
C6 = unknown,
|
|
749
|
+
C7 = unknown,
|
|
750
|
+
C8 = unknown,
|
|
751
|
+
C9 = unknown,
|
|
752
|
+
C10 = unknown,
|
|
753
|
+
C11 = unknown,
|
|
754
|
+
C12 = unknown,
|
|
755
|
+
C13 = unknown,
|
|
756
|
+
C14 = unknown,
|
|
757
|
+
C15 = unknown
|
|
758
|
+
>(
|
|
759
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
760
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
761
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
762
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
763
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
764
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
765
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
766
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
767
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
768
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
769
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
770
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
771
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
772
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
773
|
+
f15: (value: T14) => Effect<T15, E15, C15>
|
|
774
|
+
): (
|
|
775
|
+
start: T0
|
|
776
|
+
) => Effect<
|
|
777
|
+
T15,
|
|
778
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15,
|
|
779
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15
|
|
780
|
+
>;
|
|
155
781
|
|
|
156
782
|
export declare function effectPipe<
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
783
|
+
T0,
|
|
784
|
+
T1,
|
|
785
|
+
T2,
|
|
786
|
+
T3,
|
|
787
|
+
T4,
|
|
788
|
+
T5,
|
|
789
|
+
T6,
|
|
790
|
+
T7,
|
|
791
|
+
T8,
|
|
792
|
+
T9,
|
|
793
|
+
T10,
|
|
794
|
+
T11,
|
|
795
|
+
T12,
|
|
796
|
+
T13,
|
|
797
|
+
T14,
|
|
798
|
+
T15,
|
|
799
|
+
T16,
|
|
162
800
|
E1 = unknown,
|
|
163
801
|
E2 = unknown,
|
|
164
802
|
E3 = unknown,
|
|
165
803
|
E4 = unknown,
|
|
166
|
-
|
|
804
|
+
E5 = unknown,
|
|
805
|
+
E6 = unknown,
|
|
806
|
+
E7 = unknown,
|
|
807
|
+
E8 = unknown,
|
|
808
|
+
E9 = unknown,
|
|
809
|
+
E10 = unknown,
|
|
810
|
+
E11 = unknown,
|
|
811
|
+
E12 = unknown,
|
|
812
|
+
E13 = unknown,
|
|
813
|
+
E14 = unknown,
|
|
814
|
+
E15 = unknown,
|
|
815
|
+
E16 = unknown,
|
|
816
|
+
C1 = unknown,
|
|
817
|
+
C2 = unknown,
|
|
818
|
+
C3 = unknown,
|
|
819
|
+
C4 = unknown,
|
|
820
|
+
C5 = unknown,
|
|
821
|
+
C6 = unknown,
|
|
822
|
+
C7 = unknown,
|
|
823
|
+
C8 = unknown,
|
|
824
|
+
C9 = unknown,
|
|
825
|
+
C10 = unknown,
|
|
826
|
+
C11 = unknown,
|
|
827
|
+
C12 = unknown,
|
|
828
|
+
C13 = unknown,
|
|
829
|
+
C14 = unknown,
|
|
830
|
+
C15 = unknown,
|
|
831
|
+
C16 = unknown
|
|
167
832
|
>(
|
|
168
|
-
f1: (
|
|
169
|
-
f2: (
|
|
170
|
-
f3: (
|
|
171
|
-
f4: (
|
|
172
|
-
|
|
833
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
834
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
835
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
836
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
837
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
838
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
839
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
840
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
841
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
842
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
843
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
844
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
845
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
846
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
847
|
+
f15: (value: T14) => Effect<T15, E15, C15>,
|
|
848
|
+
f16: (value: T15) => Effect<T16, E16, C16>
|
|
849
|
+
): (
|
|
850
|
+
start: T0
|
|
851
|
+
) => Effect<
|
|
852
|
+
T16,
|
|
853
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16,
|
|
854
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16
|
|
855
|
+
>;
|
|
173
856
|
|
|
174
857
|
export declare function effectPipe<
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
858
|
+
T0,
|
|
859
|
+
T1,
|
|
860
|
+
T2,
|
|
861
|
+
T3,
|
|
862
|
+
T4,
|
|
863
|
+
T5,
|
|
864
|
+
T6,
|
|
865
|
+
T7,
|
|
866
|
+
T8,
|
|
867
|
+
T9,
|
|
868
|
+
T10,
|
|
869
|
+
T11,
|
|
870
|
+
T12,
|
|
871
|
+
T13,
|
|
872
|
+
T14,
|
|
873
|
+
T15,
|
|
874
|
+
T16,
|
|
875
|
+
T17,
|
|
181
876
|
E1 = unknown,
|
|
182
877
|
E2 = unknown,
|
|
183
878
|
E3 = unknown,
|
|
184
879
|
E4 = unknown,
|
|
185
880
|
E5 = unknown,
|
|
186
|
-
|
|
881
|
+
E6 = unknown,
|
|
882
|
+
E7 = unknown,
|
|
883
|
+
E8 = unknown,
|
|
884
|
+
E9 = unknown,
|
|
885
|
+
E10 = unknown,
|
|
886
|
+
E11 = unknown,
|
|
887
|
+
E12 = unknown,
|
|
888
|
+
E13 = unknown,
|
|
889
|
+
E14 = unknown,
|
|
890
|
+
E15 = unknown,
|
|
891
|
+
E16 = unknown,
|
|
892
|
+
E17 = unknown,
|
|
893
|
+
C1 = unknown,
|
|
894
|
+
C2 = unknown,
|
|
895
|
+
C3 = unknown,
|
|
896
|
+
C4 = unknown,
|
|
897
|
+
C5 = unknown,
|
|
898
|
+
C6 = unknown,
|
|
899
|
+
C7 = unknown,
|
|
900
|
+
C8 = unknown,
|
|
901
|
+
C9 = unknown,
|
|
902
|
+
C10 = unknown,
|
|
903
|
+
C11 = unknown,
|
|
904
|
+
C12 = unknown,
|
|
905
|
+
C13 = unknown,
|
|
906
|
+
C14 = unknown,
|
|
907
|
+
C15 = unknown,
|
|
908
|
+
C16 = unknown,
|
|
909
|
+
C17 = unknown
|
|
187
910
|
>(
|
|
188
|
-
f1: (
|
|
189
|
-
f2: (
|
|
190
|
-
f3: (
|
|
191
|
-
f4: (
|
|
192
|
-
f5: (
|
|
193
|
-
|
|
911
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
912
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
913
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
914
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
915
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
916
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
917
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
918
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
919
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
920
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
921
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
922
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
923
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
924
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
925
|
+
f15: (value: T14) => Effect<T15, E15, C15>,
|
|
926
|
+
f16: (value: T15) => Effect<T16, E16, C16>,
|
|
927
|
+
f17: (value: T16) => Effect<T17, E17, C17>
|
|
928
|
+
): (
|
|
929
|
+
start: T0
|
|
930
|
+
) => Effect<
|
|
931
|
+
T17,
|
|
932
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17,
|
|
933
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17
|
|
934
|
+
>;
|
|
194
935
|
|
|
195
936
|
export declare function effectPipe<
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
937
|
+
T0,
|
|
938
|
+
T1,
|
|
939
|
+
T2,
|
|
940
|
+
T3,
|
|
941
|
+
T4,
|
|
942
|
+
T5,
|
|
943
|
+
T6,
|
|
944
|
+
T7,
|
|
945
|
+
T8,
|
|
946
|
+
T9,
|
|
947
|
+
T10,
|
|
948
|
+
T11,
|
|
949
|
+
T12,
|
|
950
|
+
T13,
|
|
951
|
+
T14,
|
|
952
|
+
T15,
|
|
953
|
+
T16,
|
|
954
|
+
T17,
|
|
955
|
+
T18,
|
|
203
956
|
E1 = unknown,
|
|
204
957
|
E2 = unknown,
|
|
205
958
|
E3 = unknown,
|
|
206
959
|
E4 = unknown,
|
|
207
960
|
E5 = unknown,
|
|
208
961
|
E6 = unknown,
|
|
209
|
-
|
|
962
|
+
E7 = unknown,
|
|
963
|
+
E8 = unknown,
|
|
964
|
+
E9 = unknown,
|
|
965
|
+
E10 = unknown,
|
|
966
|
+
E11 = unknown,
|
|
967
|
+
E12 = unknown,
|
|
968
|
+
E13 = unknown,
|
|
969
|
+
E14 = unknown,
|
|
970
|
+
E15 = unknown,
|
|
971
|
+
E16 = unknown,
|
|
972
|
+
E17 = unknown,
|
|
973
|
+
E18 = unknown,
|
|
974
|
+
C1 = unknown,
|
|
975
|
+
C2 = unknown,
|
|
976
|
+
C3 = unknown,
|
|
977
|
+
C4 = unknown,
|
|
978
|
+
C5 = unknown,
|
|
979
|
+
C6 = unknown,
|
|
980
|
+
C7 = unknown,
|
|
981
|
+
C8 = unknown,
|
|
982
|
+
C9 = unknown,
|
|
983
|
+
C10 = unknown,
|
|
984
|
+
C11 = unknown,
|
|
985
|
+
C12 = unknown,
|
|
986
|
+
C13 = unknown,
|
|
987
|
+
C14 = unknown,
|
|
988
|
+
C15 = unknown,
|
|
989
|
+
C16 = unknown,
|
|
990
|
+
C17 = unknown,
|
|
991
|
+
C18 = unknown
|
|
210
992
|
>(
|
|
211
|
-
f1: (
|
|
212
|
-
f2: (
|
|
213
|
-
f3: (
|
|
214
|
-
f4: (
|
|
215
|
-
f5: (
|
|
216
|
-
f6: (
|
|
217
|
-
|
|
993
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
994
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
995
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
996
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
997
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
998
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
999
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
1000
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
1001
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
1002
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
1003
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
1004
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
1005
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
1006
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
1007
|
+
f15: (value: T14) => Effect<T15, E15, C15>,
|
|
1008
|
+
f16: (value: T15) => Effect<T16, E16, C16>,
|
|
1009
|
+
f17: (value: T16) => Effect<T17, E17, C17>,
|
|
1010
|
+
f18: (value: T17) => Effect<T18, E18, C18>
|
|
1011
|
+
): (
|
|
1012
|
+
start: T0
|
|
1013
|
+
) => Effect<
|
|
1014
|
+
T18,
|
|
1015
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18,
|
|
1016
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18
|
|
1017
|
+
>;
|
|
218
1018
|
|
|
219
1019
|
export declare function effectPipe<
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
1020
|
+
T0,
|
|
1021
|
+
T1,
|
|
1022
|
+
T2,
|
|
1023
|
+
T3,
|
|
1024
|
+
T4,
|
|
1025
|
+
T5,
|
|
1026
|
+
T6,
|
|
1027
|
+
T7,
|
|
1028
|
+
T8,
|
|
1029
|
+
T9,
|
|
1030
|
+
T10,
|
|
1031
|
+
T11,
|
|
1032
|
+
T12,
|
|
1033
|
+
T13,
|
|
1034
|
+
T14,
|
|
1035
|
+
T15,
|
|
1036
|
+
T16,
|
|
1037
|
+
T17,
|
|
1038
|
+
T18,
|
|
1039
|
+
T19,
|
|
228
1040
|
E1 = unknown,
|
|
229
1041
|
E2 = unknown,
|
|
230
1042
|
E3 = unknown,
|
|
@@ -232,27 +1044,87 @@ export declare function effectPipe<
|
|
|
232
1044
|
E5 = unknown,
|
|
233
1045
|
E6 = unknown,
|
|
234
1046
|
E7 = unknown,
|
|
235
|
-
|
|
1047
|
+
E8 = unknown,
|
|
1048
|
+
E9 = unknown,
|
|
1049
|
+
E10 = unknown,
|
|
1050
|
+
E11 = unknown,
|
|
1051
|
+
E12 = unknown,
|
|
1052
|
+
E13 = unknown,
|
|
1053
|
+
E14 = unknown,
|
|
1054
|
+
E15 = unknown,
|
|
1055
|
+
E16 = unknown,
|
|
1056
|
+
E17 = unknown,
|
|
1057
|
+
E18 = unknown,
|
|
1058
|
+
E19 = unknown,
|
|
1059
|
+
C1 = unknown,
|
|
1060
|
+
C2 = unknown,
|
|
1061
|
+
C3 = unknown,
|
|
1062
|
+
C4 = unknown,
|
|
1063
|
+
C5 = unknown,
|
|
1064
|
+
C6 = unknown,
|
|
1065
|
+
C7 = unknown,
|
|
1066
|
+
C8 = unknown,
|
|
1067
|
+
C9 = unknown,
|
|
1068
|
+
C10 = unknown,
|
|
1069
|
+
C11 = unknown,
|
|
1070
|
+
C12 = unknown,
|
|
1071
|
+
C13 = unknown,
|
|
1072
|
+
C14 = unknown,
|
|
1073
|
+
C15 = unknown,
|
|
1074
|
+
C16 = unknown,
|
|
1075
|
+
C17 = unknown,
|
|
1076
|
+
C18 = unknown,
|
|
1077
|
+
C19 = unknown
|
|
236
1078
|
>(
|
|
237
|
-
f1: (
|
|
238
|
-
f2: (
|
|
239
|
-
f3: (
|
|
240
|
-
f4: (
|
|
241
|
-
f5: (
|
|
242
|
-
f6: (
|
|
243
|
-
f7: (
|
|
244
|
-
|
|
1079
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
1080
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
1081
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
1082
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
1083
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
1084
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
1085
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
1086
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
1087
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
1088
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
1089
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
1090
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
1091
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
1092
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
1093
|
+
f15: (value: T14) => Effect<T15, E15, C15>,
|
|
1094
|
+
f16: (value: T15) => Effect<T16, E16, C16>,
|
|
1095
|
+
f17: (value: T16) => Effect<T17, E17, C17>,
|
|
1096
|
+
f18: (value: T17) => Effect<T18, E18, C18>,
|
|
1097
|
+
f19: (value: T18) => Effect<T19, E19, C19>
|
|
1098
|
+
): (
|
|
1099
|
+
start: T0
|
|
1100
|
+
) => Effect<
|
|
1101
|
+
T19,
|
|
1102
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18 | E19,
|
|
1103
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18 & C19
|
|
1104
|
+
>;
|
|
245
1105
|
|
|
246
1106
|
export declare function effectPipe<
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
1107
|
+
T0,
|
|
1108
|
+
T1,
|
|
1109
|
+
T2,
|
|
1110
|
+
T3,
|
|
1111
|
+
T4,
|
|
1112
|
+
T5,
|
|
1113
|
+
T6,
|
|
1114
|
+
T7,
|
|
1115
|
+
T8,
|
|
1116
|
+
T9,
|
|
1117
|
+
T10,
|
|
1118
|
+
T11,
|
|
1119
|
+
T12,
|
|
1120
|
+
T13,
|
|
1121
|
+
T14,
|
|
1122
|
+
T15,
|
|
1123
|
+
T16,
|
|
1124
|
+
T17,
|
|
1125
|
+
T18,
|
|
1126
|
+
T19,
|
|
1127
|
+
T20,
|
|
256
1128
|
E1 = unknown,
|
|
257
1129
|
E2 = unknown,
|
|
258
1130
|
E3 = unknown,
|
|
@@ -261,61 +1133,143 @@ export declare function effectPipe<
|
|
|
261
1133
|
E6 = unknown,
|
|
262
1134
|
E7 = unknown,
|
|
263
1135
|
E8 = unknown,
|
|
264
|
-
|
|
1136
|
+
E9 = unknown,
|
|
1137
|
+
E10 = unknown,
|
|
1138
|
+
E11 = unknown,
|
|
1139
|
+
E12 = unknown,
|
|
1140
|
+
E13 = unknown,
|
|
1141
|
+
E14 = unknown,
|
|
1142
|
+
E15 = unknown,
|
|
1143
|
+
E16 = unknown,
|
|
1144
|
+
E17 = unknown,
|
|
1145
|
+
E18 = unknown,
|
|
1146
|
+
E19 = unknown,
|
|
1147
|
+
E20 = unknown,
|
|
1148
|
+
C1 = unknown,
|
|
1149
|
+
C2 = unknown,
|
|
1150
|
+
C3 = unknown,
|
|
1151
|
+
C4 = unknown,
|
|
1152
|
+
C5 = unknown,
|
|
1153
|
+
C6 = unknown,
|
|
1154
|
+
C7 = unknown,
|
|
1155
|
+
C8 = unknown,
|
|
1156
|
+
C9 = unknown,
|
|
1157
|
+
C10 = unknown,
|
|
1158
|
+
C11 = unknown,
|
|
1159
|
+
C12 = unknown,
|
|
1160
|
+
C13 = unknown,
|
|
1161
|
+
C14 = unknown,
|
|
1162
|
+
C15 = unknown,
|
|
1163
|
+
C16 = unknown,
|
|
1164
|
+
C17 = unknown,
|
|
1165
|
+
C18 = unknown,
|
|
1166
|
+
C19 = unknown,
|
|
1167
|
+
C20 = unknown
|
|
265
1168
|
>(
|
|
266
|
-
f1: (
|
|
267
|
-
f2: (
|
|
268
|
-
f3: (
|
|
269
|
-
f4: (
|
|
270
|
-
f5: (
|
|
271
|
-
f6: (
|
|
272
|
-
f7: (
|
|
273
|
-
f8: (
|
|
274
|
-
|
|
1169
|
+
f1: (value: T0) => Effect<T1, E1, C1>,
|
|
1170
|
+
f2: (value: T1) => Effect<T2, E2, C2>,
|
|
1171
|
+
f3: (value: T2) => Effect<T3, E3, C3>,
|
|
1172
|
+
f4: (value: T3) => Effect<T4, E4, C4>,
|
|
1173
|
+
f5: (value: T4) => Effect<T5, E5, C5>,
|
|
1174
|
+
f6: (value: T5) => Effect<T6, E6, C6>,
|
|
1175
|
+
f7: (value: T6) => Effect<T7, E7, C7>,
|
|
1176
|
+
f8: (value: T7) => Effect<T8, E8, C8>,
|
|
1177
|
+
f9: (value: T8) => Effect<T9, E9, C9>,
|
|
1178
|
+
f10: (value: T9) => Effect<T10, E10, C10>,
|
|
1179
|
+
f11: (value: T10) => Effect<T11, E11, C11>,
|
|
1180
|
+
f12: (value: T11) => Effect<T12, E12, C12>,
|
|
1181
|
+
f13: (value: T12) => Effect<T13, E13, C13>,
|
|
1182
|
+
f14: (value: T13) => Effect<T14, E14, C14>,
|
|
1183
|
+
f15: (value: T14) => Effect<T15, E15, C15>,
|
|
1184
|
+
f16: (value: T15) => Effect<T16, E16, C16>,
|
|
1185
|
+
f17: (value: T16) => Effect<T17, E17, C17>,
|
|
1186
|
+
f18: (value: T17) => Effect<T18, E18, C18>,
|
|
1187
|
+
f19: (value: T18) => Effect<T19, E19, C19>,
|
|
1188
|
+
f20: (value: T19) => Effect<T20, E20, C20>
|
|
1189
|
+
): (
|
|
1190
|
+
start: T0
|
|
1191
|
+
) => Effect<
|
|
1192
|
+
T20,
|
|
1193
|
+
E1 | E2 | E3 | E4 | E5 | E6 | E7 | E8 | E9 | E10 | E11 | E12 | E13 | E14 | E15 | E16 | E17 | E18 | E19 | E20,
|
|
1194
|
+
C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16 & C17 & C18 & C19 & C20
|
|
1195
|
+
>;
|
|
275
1196
|
|
|
276
1197
|
/**
|
|
277
|
-
* Wraps one Command execution
|
|
1198
|
+
* Wraps one Command execution, or one `Parallel` (`type` `'Parallel'`, `name` `'Parallel'`), whose `op`
|
|
1199
|
+
* runs its branches and returns its decision, even when a branch threw: the run rejects with the throw
|
|
1200
|
+
* once the hook has returned. A hook must call `op` for a `Parallel`; returning without
|
|
1201
|
+
* calling it is legitimate only for a Command, which is how replay works. Only a replay passes `op` an
|
|
1202
|
+
* argument, the recorded decision. `path` is the step's position in the Effect tree rather than its
|
|
278
1203
|
* position in completion order, so it is the same in a replay as in the recorded run even when
|
|
279
|
-
* `Parallel` branches finish in a different order. Hooks that take three parameters are unaffected.
|
|
1204
|
+
* `Parallel` branches finish in a different order. Hooks that take three parameters are unaffected. The
|
|
1205
|
+
* interpreter always passes `path`, so it is declared as present, and a wrapper that calls another
|
|
1206
|
+
* `StepRunner` has to pass it on: a trace recorded without paths cannot replay a `Parallel`.
|
|
280
1207
|
*/
|
|
281
|
-
export type StepRunner = (
|
|
1208
|
+
export type StepRunner = (
|
|
1209
|
+
name: string,
|
|
1210
|
+
type: string,
|
|
1211
|
+
op: (decision?: ParallelDecision) => Promise<unknown>,
|
|
1212
|
+
path: string
|
|
1213
|
+
) => Promise<unknown>;
|
|
282
1214
|
|
|
1215
|
+
/**
|
|
1216
|
+
* Which branch, if any, cancelled a `Parallel`: what a `Parallel`'s step returns and what its trace entry
|
|
1217
|
+
* records, so a replay reproduces the decision rather than recomputing it from timing. `branch: null`
|
|
1218
|
+
* means an enclosing `Parallel` cancelled it.
|
|
1219
|
+
*/
|
|
1220
|
+
export type ParallelDecision = { cancelled: false } | { cancelled: true; branch: number | null };
|
|
1221
|
+
|
|
1222
|
+
/** `flowName` is `context.flowName`, or `''` when the context has none; the interpreter always passes it. */
|
|
283
1223
|
export type RunWrapper = (
|
|
284
1224
|
effect: Effect<unknown>,
|
|
285
1225
|
op: () => Promise<SuccessState<unknown> | FailureState<unknown>>,
|
|
286
|
-
flowName
|
|
1226
|
+
flowName: string
|
|
287
1227
|
) => Promise<SuccessState<unknown> | FailureState<unknown>>;
|
|
288
1228
|
|
|
289
|
-
|
|
1229
|
+
/**
|
|
1230
|
+
* Runs before each Command; throw to abort. The interpreter awaits whatever it returns, so it need not be
|
|
1231
|
+
* async. A union of two function types rather than one returning `Promise<void> | void`: in a JavaScript
|
|
1232
|
+
* file, a JSDoc `@type` on an async function is its declared signature, and an async function's declared
|
|
1233
|
+
* return type has to be a `Promise`, so the single signature broke every JSDoc-annotated async interceptor.
|
|
1234
|
+
*/
|
|
1235
|
+
export type CommandInterceptor =
|
|
1236
|
+
| ((command: CommandState<unknown, unknown>, context?: any) => Promise<void>)
|
|
1237
|
+
| ((command: CommandState<unknown, unknown>, context?: any) => void);
|
|
290
1238
|
|
|
291
1239
|
export interface EffectConfiguration {
|
|
292
1240
|
onStep?: StepRunner;
|
|
293
1241
|
onRun?: RunWrapper;
|
|
294
1242
|
onBeforeCommand?: CommandInterceptor;
|
|
295
|
-
retry?: RetryOptions;
|
|
296
1243
|
}
|
|
297
1244
|
|
|
298
1245
|
/**
|
|
299
1246
|
* Adds a layer to the global runner's wiring and returns a function that removes it. Layers merge:
|
|
300
1247
|
* `onStep` and `onRun` nest with the earliest layer outermost, `onBeforeCommand` interceptors all run
|
|
301
|
-
* in the order installed
|
|
1248
|
+
* in the order installed. Several configurations passed
|
|
302
1249
|
* to one call form one layer, which is the same as installing them in separate calls. Calling with no
|
|
303
1250
|
* arguments at all removes every layer; a call whose arguments are all `undefined` adds and removes nothing.
|
|
1251
|
+
*
|
|
1252
|
+
* A `retry` key throws a `TypeError`: retry options are per-use, passed to `Retry(effect, options)`.
|
|
304
1253
|
*/
|
|
305
1254
|
export declare function configureEffect(...configs: (EffectConfiguration | undefined)[]): () => void;
|
|
306
1255
|
|
|
307
1256
|
/**
|
|
308
1257
|
* A per-call configuration for `runEffect`. With `inherit: true` (default) the call's hooks are added to
|
|
309
|
-
* the wiring `configureEffect` installed: where both define a hook the two nest, global outermost
|
|
310
|
-
* `
|
|
311
|
-
*
|
|
1258
|
+
* the wiring `configureEffect` installed: where both define a hook the two nest, global outermost. With
|
|
1259
|
+
* `inherit: false` the global wiring is ignored, so an unset hook falls back to the library default.
|
|
1260
|
+
* A `retry` key throws a `TypeError`, as it does for `configureEffect`.
|
|
312
1261
|
*/
|
|
313
1262
|
export type CallConfiguration = EffectConfiguration & { inherit?: boolean };
|
|
314
1263
|
|
|
1264
|
+
/**
|
|
1265
|
+
* A flow whose context type is not `unknown` reads one through `Ask`, so the context is required for it;
|
|
1266
|
+
* the runtime would otherwise hand `Ask` an empty object.
|
|
1267
|
+
*/
|
|
315
1268
|
export declare function runEffect<T, E = unknown, Ctx = unknown>(
|
|
316
1269
|
effect: Effect<T, E, Ctx>,
|
|
317
|
-
|
|
318
|
-
|
|
1270
|
+
...args: unknown extends Ctx
|
|
1271
|
+
? [context?: Ctx, callConfig?: CallConfiguration]
|
|
1272
|
+
: [context: Ctx, callConfig?: CallConfiguration]
|
|
319
1273
|
): Promise<SuccessState<T> | FailureState<E>>;
|
|
320
1274
|
|
|
321
1275
|
export type ReplayStep = {
|
|
@@ -324,16 +1278,21 @@ export type ReplayStep = {
|
|
|
324
1278
|
* whose branches finish in whatever order they finish in. Prefer `path`.
|
|
325
1279
|
*/
|
|
326
1280
|
index: number;
|
|
327
|
-
/** `cmd.name`, or 'anonymous'. */
|
|
1281
|
+
/** `meta.name`, `cmd.name`, or 'anonymous'; 'Parallel' for a `Parallel`'s step. */
|
|
328
1282
|
name: string;
|
|
329
|
-
/**
|
|
1283
|
+
/**
|
|
1284
|
+
* 'Command', or 'Parallel' for the step a `Parallel` records its decision under. A Resolver that
|
|
1285
|
+
* answers a 'Parallel' step with `{ result: ParallelDecision }` has it reproduced; anything else
|
|
1286
|
+
* replays that `Parallel` under timing. A 'Parallel' step does not advance `index`.
|
|
1287
|
+
*/
|
|
330
1288
|
type: string;
|
|
331
1289
|
/**
|
|
332
1290
|
* The Command's position in the Effect tree, stable across runs: steps are numbered within a
|
|
333
1291
|
* subtree, and each `Parallel` branch and `Retry` attempt opens its own prefix. This is what a
|
|
334
|
-
* replay matches on, and what a Resolver should key off.
|
|
1292
|
+
* replay matches on, and what a Resolver should key off. Every step has one; it is a recorded
|
|
1293
|
+
* `TraceEntry` that can lack a path, when it was written by hand or recorded before paths existed.
|
|
335
1294
|
*/
|
|
336
|
-
path
|
|
1295
|
+
path: string;
|
|
337
1296
|
};
|
|
338
1297
|
|
|
339
1298
|
/**
|
|
@@ -345,6 +1304,10 @@ export type ReplayOutcome = { result: unknown } | { error: unknown };
|
|
|
345
1304
|
|
|
346
1305
|
export type Resolver = (step: ReplayStep) => ReplayOutcome | undefined;
|
|
347
1306
|
|
|
1307
|
+
/**
|
|
1308
|
+
* A recorded step: a Command's result or error, or a `Parallel`'s decision, whose `command` is
|
|
1309
|
+
* 'Parallel', whose `path` ends in the `Parallel`'s `p` marker, and whose `result` is a `ParallelDecision`.
|
|
1310
|
+
*/
|
|
348
1311
|
export type TraceEntry = {
|
|
349
1312
|
command: string;
|
|
350
1313
|
/**
|
|
@@ -353,6 +1316,12 @@ export type TraceEntry = {
|
|
|
353
1316
|
*/
|
|
354
1317
|
path?: string;
|
|
355
1318
|
result?: unknown;
|
|
1319
|
+
/**
|
|
1320
|
+
* Marks a step that threw. The `error` key alone cannot, since JSON drops it when the value is
|
|
1321
|
+
* `undefined`, as it is for `reject()` with no argument. An entry with an `error` and no `threw`, as
|
|
1322
|
+
* older traces have, still replays as a throw.
|
|
1323
|
+
*/
|
|
1324
|
+
threw?: true;
|
|
356
1325
|
error?: unknown;
|
|
357
1326
|
/** How long the Command took in production, rounded to microseconds. */
|
|
358
1327
|
durationMs?: number;
|
|
@@ -374,8 +1343,11 @@ export interface RecorderOptions {
|
|
|
374
1343
|
* `initialInput` and `context` stored on the trace itself. `kind` is `'result'`, `'error'`,
|
|
375
1344
|
* `'initialInput'`, or `'context'`; `name` is the Command's name for the first two and the kind for
|
|
376
1345
|
* the last two. This is the single place PII is kept out of a trace, which is why it sees all four.
|
|
1346
|
+
* It is handed a copy, so changing the value in place never reaches the run.
|
|
1347
|
+
* `value` is `any` rather than `unknown` because a redact nearly always spreads or reads it, as in
|
|
1348
|
+
* `{ ...value, password: '[redacted]' }`, and it can be any value a flow handles.
|
|
377
1349
|
*/
|
|
378
|
-
redact?: (value:
|
|
1350
|
+
redact?: (value: any, name: string, kind: 'result' | 'error' | 'initialInput' | 'context') => unknown;
|
|
379
1351
|
/** Cap trace length; further steps are counted in `dropped`, not stored. */
|
|
380
1352
|
maxEntries?: number;
|
|
381
1353
|
/** Record stack traces for thrown errors. Off by default. */
|
|
@@ -386,7 +1358,8 @@ export interface TraceMeta {
|
|
|
386
1358
|
initialInput?: unknown;
|
|
387
1359
|
flowName?: string;
|
|
388
1360
|
context?: unknown;
|
|
389
|
-
|
|
1361
|
+
/** Accepts `undefined`, so `process.env.BUILD_ID` passes under `exactOptionalPropertyTypes`. */
|
|
1362
|
+
version?: string | undefined;
|
|
390
1363
|
}
|
|
391
1364
|
|
|
392
1365
|
export declare function recorder(options?: RecorderOptions): {
|
|
@@ -395,20 +1368,31 @@ export declare function recorder(options?: RecorderOptions): {
|
|
|
395
1368
|
toTrace(meta?: TraceMeta): TraceLog;
|
|
396
1369
|
};
|
|
397
1370
|
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
1371
|
+
/** `recordEffect`'s options: recorder options, plus the context the run gets and a build id. */
|
|
1372
|
+
export type RecordOptions<Ctx = unknown> = RecorderOptions & { context?: Ctx; version?: string | undefined };
|
|
1373
|
+
|
|
1374
|
+
/**
|
|
1375
|
+
* The input is checked against what the flow takes. A flow whose context type is not `unknown` reads
|
|
1376
|
+
* one through `Ask`, so recording it requires `options.context`.
|
|
1377
|
+
*/
|
|
1378
|
+
export declare function recordEffect<I, T, E = unknown, Ctx = unknown>(
|
|
1379
|
+
flowFn: (input: I) => Effect<T, E, Ctx>,
|
|
1380
|
+
initialInput: I,
|
|
1381
|
+
...options: unknown extends Ctx ? [options?: RecordOptions<Ctx>] : [options: RecordOptions<Ctx> & { context: Ctx }]
|
|
402
1382
|
): Promise<{ result: SuccessState<T> | FailureState<E>; trace: TraceLog }>;
|
|
403
1383
|
|
|
404
1384
|
export interface ReplayOptions<Ctx = unknown> {
|
|
405
|
-
/**
|
|
1385
|
+
/**
|
|
1386
|
+
* Context for `Ask`. With a trace it defaults to the context the trace recorded, so pass one only to
|
|
1387
|
+
* replay with a different one. A Resolver has no recorded context, so pass it one if the flow reads `Ask`.
|
|
1388
|
+
*/
|
|
406
1389
|
context?: Ctx;
|
|
407
1390
|
/** Strip `Retry` delays so a replay does not wait out production backoff (default `true`). */
|
|
408
1391
|
fastRetry?: boolean;
|
|
409
1392
|
/**
|
|
410
1393
|
* Run the replay inside the global hooks, resolver innermost, so configured hooks observe it
|
|
411
|
-
* (default `false`, which ignores the global hooks).
|
|
1394
|
+
* (default `false`, which ignores the global hooks). Retry options are per-use, so a replay reads the
|
|
1395
|
+
* same ones the recorded run did.
|
|
412
1396
|
*/
|
|
413
1397
|
hooks?: boolean;
|
|
414
1398
|
/**
|
|
@@ -458,5 +1442,5 @@ export declare function replayEffect<T, E = unknown, Ctx = unknown>(
|
|
|
458
1442
|
export declare function timeTravel<T, E = unknown, Ctx = unknown>(
|
|
459
1443
|
flowFn: (input: any) => Effect<T, E, Ctx>,
|
|
460
1444
|
traceLog: TraceLog,
|
|
461
|
-
options?: { log?: (...args: any[]) => void; context?: Ctx; version?: string }
|
|
1445
|
+
options?: { log?: (...args: any[]) => void; context?: Ctx; version?: string | undefined }
|
|
462
1446
|
): Promise<SuccessState<T> | FailureState<E>>;
|