API client, auth bootstrap and job polling (#42)
CI / ci (push) Successful in 1m32s
CI / ci (pull_request) Successful in 1m33s

Co-authored-by: dev_agent <dev_agent@cubecraftlabs.com>
Co-committed-by: dev_agent <dev_agent@cubecraftlabs.com>
This commit was merged in pull request #42.
This commit is contained in:
2026-10-04 08:46:40 -04:00
committed by approver_agent
parent c899f07b1f
commit 048d5dd71a
18 changed files with 840 additions and 24 deletions
+20
View File
@@ -0,0 +1,20 @@
import { QueryClient } from '@tanstack/react-query'
import { ApiError } from './errors.ts'
// MAX_RETRIES bounds retries of a failure the server marked retryable.
export const MAX_RETRIES = 3
// shouldRetry retries only an ApiError the server marked retryable — never a
// 401, a 403 or a malformed response.
export function shouldRetry(failureCount: number, error: unknown): boolean {
return error instanceof ApiError && error.retryable && failureCount < MAX_RETRIES
}
export function createQueryClient(): QueryClient {
return new QueryClient({
defaultOptions: {
queries: { retry: shouldRetry, staleTime: 30_000 },
mutations: { retry: shouldRetry },
},
})
}