femto-webapp/src/app/api/client.ts
2025-05-20 11:47:16 +02:00

21 lines
695 B
TypeScript

import { paths } from './schema.ts'
import createClient, { Client, Middleware } from 'openapi-fetch'
import { dispatchMessage } from '../messageBus/messageBus.ts'
export type ApiClient = Client<paths>
export function initClient(): ApiClient {
const client = createClient<paths>({ baseUrl: import.meta.env.VITE_API_URL })
const UnauthorizedHandlerMiddleware: Middleware = {
async onResponse({ response }) {
console.debug(response.headers.getSetCookie())
console.debug(response.headers.get('set-cookie'))
if (response.status === 401) {
dispatchMessage('auth:unauthorized', null)
}
},
}
client.use(UnauthorizedHandlerMiddleware)
return client
}