import { useAuthStore } from '../stores/auth' export async function apiFetch(input: RequestInfo | URL, init: RequestInit = {}) { const auth = useAuthStore() if (!auth.initialized) await auth.initialize() const send = () => { const headers = new Headers(init.headers) if (auth.accessToken) headers.set('Authorization', `Bearer ${auth.accessToken}`) if (auth.isIris) headers.set('X-Agent-Id', 'iris') else if (auth.isBao) headers.set('X-Agent-Id', 'bao') return fetch(input, { ...init, headers, credentials: 'include' }) } let response = await send() if (response.status !== 401) return response const refreshed = await auth.refresh() if (!refreshed) { if (window.location.pathname !== '/login') window.location.assign('/login') return response } response = await send() return response }