Commit e94e4f21 authored by r-4bb1t's avatar r-4bb1t
Browse files

refactor: update timeout error handling to use `Deno.errors.TimedOut`

parent 5f59f677
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -323,9 +323,9 @@ Deno.test("createTimeoutSignal - creates AbortSignal that aborts after timeout",
  await new Promise((resolve) => setTimeout(resolve, 150));

  assertEquals(signal.aborted, true);
  assertEquals(signal.reason instanceof Error, true);
  assertEquals(signal.reason instanceof Deno.errors.TimedOut, true);
  assertEquals(
    (signal.reason as Error).message,
    (signal.reason as Deno.errors.TimedOut).message,
    "Request timed out after 0.1 seconds",
  );
});
+6 −4
Original line number Diff line number Diff line
@@ -159,7 +159,9 @@ export function createTimeoutSignal(
  const controller = new AbortController();
  const timerId = setTimeout(() => {
    controller.abort(
      new Error(`Request timed out after ${timeoutSeconds} seconds`),
      new Deno.errors.TimedOut(
        `Request timed out after ${timeoutSeconds} seconds`,
      ),
    );
  }, timeoutSeconds * 1000);

@@ -358,7 +360,7 @@ export const command = new Command()
          userAgent: options.userAgent,
        });
      } catch (error) {
        if (error instanceof Error && error.message.includes("timed out")) {
        if (error instanceof Deno.errors.TimedOut) {
          handleTimeoutError(spinner, options.timeout, url);
        } else {
          spinner.fail(`Failed to fetch object: ${colors.red(url)}.`);
@@ -405,7 +407,7 @@ export const command = new Command()
        }
      } catch (error) {
        logger.error("Failed to complete the traversal: {error}", { error });
        if (error instanceof Error && error.message.includes("timed out")) {
        if (error instanceof Deno.errors.TimedOut) {
          handleTimeoutError(spinner, options.timeout);
        } else {
          spinner.fail("Failed to complete the traversal.");
@@ -439,7 +441,7 @@ export const command = new Command()
            userAgent: options.userAgent,
          },
        ).catch((error) => {
          if (error instanceof Error && error.message.includes("timed out")) {
          if (error instanceof Deno.errors.TimedOut) {
            handleTimeoutError(spinner, options.timeout, url);
          }
          throw error;