From c7d3f83b8ba00bfb23422c8e6310399f6f1d7ce6 Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Mon, 4 May 2026 20:10:52 -0400 Subject: [PATCH] refactor: reduce failure-classification API surface --- sdk/src/query-failure-classification.test.ts | 6 +----- sdk/src/query-failure-classification.ts | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/sdk/src/query-failure-classification.test.ts b/sdk/src/query-failure-classification.test.ts index 8c1a52459..f6dbe0115 100644 --- a/sdk/src/query-failure-classification.test.ts +++ b/sdk/src/query-failure-classification.test.ts @@ -1,8 +1,6 @@ import { describe, expect, it } from 'vitest'; import { errorMessage, - isTimeoutMessage, - parseTimeoutMs, timeoutMessage, toFailureSignal, } from './query-failure-classification.js'; @@ -11,10 +9,8 @@ import { GSDToolsError } from './gsd-tools-error.js'; describe('query failure classification', () => { it('extracts timeout metadata from message', () => { const msg = timeoutMessage('state', ['load'], 30000); - expect(isTimeoutMessage(msg)).toBe(true); - expect(parseTimeoutMs(msg)).toBe(30000); + expect(toFailureSignal(new Error(msg))).toEqual({ kind: 'timeout', message: msg, timeoutMs: 30000 }); }); - it('normalizes unknown error values', () => { expect(errorMessage('boom')).toBe('boom'); expect(errorMessage(new Error('x'))).toBe('x'); diff --git a/sdk/src/query-failure-classification.ts b/sdk/src/query-failure-classification.ts index e5a4a8aad..7d90f3648 100644 --- a/sdk/src/query-failure-classification.ts +++ b/sdk/src/query-failure-classification.ts @@ -10,14 +10,14 @@ export function errorMessage(error: unknown): string { return error instanceof Error ? error.message : String(error); } -export function parseTimeoutMs(message: string): number | undefined { +function parseTimeoutMs(message: string): number | undefined { const m = message.match(/timed out after\s+(\d+)ms/i); if (!m) return undefined; const n = Number.parseInt(m[1], 10); return Number.isFinite(n) ? n : undefined; } -export function isTimeoutMessage(message: string): boolean { +function isTimeoutMessage(message: string): boolean { return /timed out after/i.test(message); }