// BASE_URL spiegelt immer den "base"-Wert aus vite.config.js wider (mit // abschließendem Slash, z.B. "/hifi/" lokal oder "/" auf IONOS). export const API_BASE = `${import.meta.env.BASE_URL.replace(/\/$/, '')}/api`; async function request(path, options = {}) { const res = await fetch(`${API_BASE}${path}`, { credentials: 'include', headers: options.body instanceof FormData ? {} : { 'Content-Type': 'application/json' }, ...options, }); const isJson = res.headers.get('content-type')?.includes('application/json'); const data = isJson ? await res.json() : null; if (!res.ok) { throw new Error(data?.error || `Fehler ${res.status}`); } return data; } export const api = { get: (path) => request(path), post: (path, body) => request(path, { method: 'POST', body: body instanceof FormData ? body : JSON.stringify(body) }), put: (path, body) => request(path, { method: 'PUT', body: JSON.stringify(body) }), patch: (path, body) => request(path, { method: 'PATCH', body: JSON.stringify(body) }), delete: (path) => request(path, { method: 'DELETE' }), };