refactor: add typed query failure signals

This commit is contained in:
Tom Boucher
2026-05-04 19:57:17 -04:00
parent ba6100c548
commit 5cfd874058
8 changed files with 81 additions and 14 deletions

View File

@@ -1,6 +1,6 @@
import { GSDError, exitCodeFor } from './errors.js';
import { GSDToolsError } from './gsd-tools-error.js';
import { errorMessage } from './query-failure-classification.js';
import { isTimeoutMessage, errorMessage, parseTimeoutMs } from './query-failure-classification.js';
/**
* Module owning projection of internal errors to GSDToolsError contract.
@@ -24,6 +24,15 @@ export function toGSDToolsError(command: string, args: string[], err: unknown):
args,
1,
'',
err instanceof Error ? { cause: err } : undefined,
err instanceof Error
? {
cause: err,
...(isTimeoutMessage(msg)
? { classification: { kind: 'timeout' as const, timeoutMs: parseTimeoutMs(msg) } }
: undefined),
}
: (isTimeoutMessage(msg)
? { classification: { kind: 'timeout' as const, timeoutMs: parseTimeoutMs(msg) } }
: undefined),
);
}