add refresh

This commit is contained in:
2026-07-18 18:42:05 +07:00
parent 0731123fbb
commit 28f1e43338
3 changed files with 66 additions and 22 deletions
+33
View File
@@ -0,0 +1,33 @@
import { createEveningDetectiveServerClient, type EveningDetectiveServer } from "./generated/crabs/evening_detective_server";
import { createHttpHandler } from "./generated/crabs/evening_detective_server/client";
export function buildAuthClient(
refreshTokens: () => Promise<boolean>,
getToken: () => string | null,
): EveningDetectiveServer {
return createEveningDetectiveServerClient(
createAuthHttpHandler(
refreshTokens,
createHttpHandler(
getToken,
)
)
)
}
function createAuthHttpHandler(
refreshTokens: () => Promise<boolean>,
handler: (request: { path: string, method: string, body: string | null }) => Promise<unknown>
): (request: { path: string, method: string, body: string | null }) => Promise<unknown> {
return async (
request: { path: string, method: string, body: string | null },
) => {
try {
return await handler(request)
} catch (error) {
await refreshTokens()
return await handler(request)
}
}
}