const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || '/api' function buildUrl(path) { const normalizedPath = path.startsWith('/') ? path : `/${path}` return `${API_BASE_URL}${normalizedPath}` } export async function request(path, options = {}) { const response = await fetch(buildUrl(path), { headers: { 'Content-Type': 'application/json', ...(options.headers || {}), }, ...options, }) if (!response.ok) { const details = await response.text() throw new Error(details || `Request failed with status ${response.status}`) } if (response.status === 204) { return null } return response.json() }