/**
 * Wrappers `fetch` qui alimentent l'indicateur d'activité réseau global.
 *
 * À utiliser pour les appels « foreground » écrits en `fetch` natif (recherche,
 * envoi de message, traduction, etc.). Le décompte est garanti même en cas
 * d'erreur ou d'annulation.
 *
 * NE PAS utiliser pour le polling ou le re-fetch temps réel (Echo) : ceux-ci
 * doivent rester sur `fetch` natif pour ne pas faire clignoter la barre.
 */
import { doneTask, startTask } from './loading-store';

/** Comme `fetch`, mais signale l'activité au store global. */
export async function apiFetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {
    startTask();
    try {
        return await fetch(input, init);
    } finally {
        doneTask();
    }
}
