mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
refactor: improve error handling code quality
Address code review feedback from Gemini Code Assist: 1. Reduce duplication in ClaudeProvider catch block - Consolidate error creation logic into single path - Use conditional message building instead of duplicate blocks - Improves maintainability and follows DRY principle 2. Better separation of concerns in error utilities - Move default retry-after (60s) logic from extractRetryAfter to classifyError - extractRetryAfter now only extracts explicit values - classifyError provides default using nullish coalescing (?? 60) - Clearer single responsibility for each function 3. Update test to match new behavior - extractRetryAfter now returns undefined for rate limits without explicit value - Default value is tested in classifyError tests instead All 162 tests still passing ✅ Builds successfully with no TypeScript errors ✅
This commit is contained in:
@@ -83,11 +83,6 @@ export function extractRetryAfter(error: unknown): number | undefined {
|
||||
return parseInt(waitMatch[1], 10);
|
||||
}
|
||||
|
||||
// Default retry-after for rate limit errors
|
||||
if (isRateLimitError(error)) {
|
||||
return 60; // Default to 60 seconds for rate limit errors
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
@@ -103,7 +98,7 @@ export function classifyError(error: unknown): ErrorInfo {
|
||||
const isAuth = isAuthenticationError(message);
|
||||
const isCancellation = isCancellationError(message);
|
||||
const isRateLimit = isRateLimitError(error);
|
||||
const retryAfter = isRateLimit ? extractRetryAfter(error) : undefined;
|
||||
const retryAfter = isRateLimit ? (extractRetryAfter(error) ?? 60) : undefined;
|
||||
|
||||
let type: ErrorType;
|
||||
if (isAuth) {
|
||||
|
||||
@@ -145,9 +145,9 @@ describe('error-handler.ts', () => {
|
||||
expect(extractRetryAfter(error)).toBe(30);
|
||||
});
|
||||
|
||||
it('should return default 60 for rate limit errors without explicit retry-after', () => {
|
||||
it('should return undefined for rate limit errors without explicit retry-after', () => {
|
||||
const error = new Error('429 rate_limit_error');
|
||||
expect(extractRetryAfter(error)).toBe(60);
|
||||
expect(extractRetryAfter(error)).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should return undefined for non-rate-limit errors', () => {
|
||||
|
||||
Reference in New Issue
Block a user