interface FetchResponse { status: number; data: T | null; } export default async function fetchWrapper( path: string, data: any = null, method: string = "GET", headers: Record = {} ): Promise { try { const res = await fetch( `${import.meta.env.VITE_API_URL}${path}`, { method, credentials: "include", headers: { "Accept": "application/json", "Content-Type": "application/json", ...headers, }, body: data ? JSON.stringify(data) : null, } ); let responseData = null; try { responseData = await res.json(); } catch (_) { responseData = null; } return { status: res.status, data: responseData, }; } catch (err) { console.error("Erreur réseau :", err); return { status: 0, data: { message: "Network error", }, }; } }