/**
 * Classification des visites Inertia pour l'indicateur d'activité réseau.
 * Logique pure (sans dépendance au router) → testable en env `node`.
 */

/**
 * Détermine si une visite doit rester silencieuse (pas de barre).
 *
 * - `async` : visite de fond explicite (cf. helper silentReload).
 * - `only` non vide : rechargement partiel → typiquement du polling / refresh
 *   d'arrière-plan ; on privilégie « sans gêner ».
 * - `prefetch` : préchargement au survol, invisible par nature.
 */
export function isSilentVisit(visit: unknown): boolean {
    const v = visit as { async?: boolean; only?: unknown; prefetch?: boolean } | null | undefined;
    if (!v) return false;
    if (v.async) return true;
    if (Array.isArray(v.only) && v.only.length > 0) return true;
    if (v.prefetch) return true;
    return false;
}
