File size: 485 Bytes
35ac985 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const BASE = import.meta.env.BASE_URL.replace(/\/$/, '');
export async function apiFetch<T>(path: string, options?: RequestInit): Promise<T> {
const res = await fetch(`${BASE}${path}`, {
headers: { 'Content-Type': 'application/json', ...options?.headers },
...options,
});
if (!res.ok) {
const body = await res.json().catch(() => ({ error: { message: res.statusText } }));
throw new Error(body.error?.message ?? `HTTP ${res.status}`);
}
return res.json();
}
|