Files
evening_detective_frontend/src/api/auth_client.ts
T
2026-10-08 02:07:59 +07:00

28 lines
932 B
TypeScript

import { useAuthStore } from '@/stores/auth'
import { retryWithAuth } from './authRetry'
import {
createEveningDetectiveServerClient,
type EveningDetectiveServer,
} from './generated/crabs/evening_detective_server'
import {
createHttpHandler,
type ExtraHeadersProvider,
} from './generated/crabs/evening_detective_server/client'
export function getAuthClient(getExtraHeaders?: ExtraHeadersProvider) {
const authStore = useAuthStore()
return buildAuthClient(authStore.refreshTokenAction, authStore.getToken, getExtraHeaders)
}
function buildAuthClient(
refreshTokens: (failedToken?: string | null) => Promise<boolean>,
getToken: () => string | null,
getExtraHeaders?: ExtraHeadersProvider,
): EveningDetectiveServer {
const handler = createHttpHandler(getToken, getExtraHeaders)
return createEveningDetectiveServerClient((request) =>
retryWithAuth(() => handler(request), refreshTokens, getToken),
)
}