| 231 | }; |
| 232 | |
| 233 | const abortError = (signal: AbortSignal): unknown => { |
| 234 | if (signal.reason !== undefined) return signal.reason; |
| 235 | // oxlint-disable-next-line executor/no-error-constructor -- boundary: Fetch-compatible adapter must reject with an AbortError-shaped value |
| 236 | const error = new Error("The operation was aborted"); |
| 237 | error.name = "AbortError"; |
| 238 | return error; |
| 239 | }; |
| 240 | |
| 241 | /** An effect that completes when `signal` aborts (already-aborted = now). */ |
| 242 | const awaitAbort = (signal: AbortSignal): Effect.Effect<void> => |