const BASE = import.meta.env.BASE_URL.replace(/\/$/, ''); export async function apiFetch(path: string, options?: RequestInit): Promise { const token = localStorage.getItem('adminToken'); const headers = { 'Content-Type': 'application/json', ...(token ? { Authorization: `Bearer ${token}` } : {}), ...options?.headers, }; const res = await fetch(`${BASE}${path}`, { ...options, headers, }); if (!res.ok) { if (res.status === 401) { localStorage.removeItem('adminToken'); window.dispatchEvent(new Event('unauthorized')); } const body = await res.json().catch(() => ({ error: { message: res.statusText } })); throw new Error(body.error?.message ?? `HTTP ${res.status}`); } return res.json(); }