From 53f55b8edf7da419e35c6305ad4c559e95bb9283 Mon Sep 17 00:00:00 2001 From: Justin Spahr-Summers Date: Sat, 16 Nov 2024 16:18:35 +0000 Subject: [PATCH] Remove `abortAfterTimeout` It's fundamentally flawed because it doesn't support easy cancellation of the timeout. --- src/shared/protocol.ts | 2 -- src/utils.test.ts | 15 --------------- src/utils.ts | 11 ----------- 3 files changed, 28 deletions(-) delete mode 100644 src/utils.test.ts delete mode 100644 src/utils.ts diff --git a/src/shared/protocol.ts b/src/shared/protocol.ts index 8103695d..ab8421bf 100644 --- a/src/shared/protocol.ts +++ b/src/shared/protocol.ts @@ -48,8 +48,6 @@ export type RequestOptions = { /** * Can be used to cancel an in-flight request. This will cause an AbortError to be raised from request(). - * - * Use abortAfterTimeout() to easily implement timeouts using this signal. */ signal?: AbortSignal; }; diff --git a/src/utils.test.ts b/src/utils.test.ts deleted file mode 100644 index e4aa4e5f..00000000 --- a/src/utils.test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { abortAfterTimeout } from "./utils.js"; - -describe("abortAfterTimeout", () => { - it("should abort after timeout", () => { - const signal = abortAfterTimeout(0); - expect(signal.aborted).toBe(false); - - return new Promise((resolve) => { - setTimeout(() => { - expect(signal.aborted).toBe(true); - resolve(true); - }, 0); - }); - }); -}); diff --git a/src/utils.ts b/src/utils.ts deleted file mode 100644 index 3ca6af28..00000000 --- a/src/utils.ts +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Returns an AbortSignal that will enter aborted state after `timeoutMs` milliseconds. - */ -export function abortAfterTimeout(timeoutMs: number): AbortSignal { - const controller = new AbortController(); - setTimeout(() => { - controller.abort("Timeout exceeded"); - }, timeoutMs); - - return controller.signal; -}