| 240 | |
| 241 | /** An effect that completes when `signal` aborts (already-aborted = now). */ |
| 242 | const awaitAbort = (signal: AbortSignal): Effect.Effect<void> => |
| 243 | Effect.callback<void>((resume) => { |
| 244 | if (signal.aborted) { |
| 245 | resume(Effect.void); |
| 246 | return; |
| 247 | } |
| 248 | signal.addEventListener("abort", () => resume(Effect.void), { once: true }); |
| 249 | }); |
| 250 | |
| 251 | /** JSON-RPC methods the 401 replay below may re-send. An HTTP 401 does not |
| 252 | * guarantee the server did no work before rejecting, so replay is limited to |