Aller au contenu

Vous lisez la documentation de la version 0.6, qui n'est pas la dernière publiée.

L'API $debug

Signature de la fonction

ts
$debug<T>(
  level: 'error' | 'warning' | 'info' | 'debug' | 'success' | 'trace',
  payload: string | Error | T,
  options?: {
    showStack?: boolean
    showSource?: boolean
    tag?: string
    prefix?: string // remplace le préfixe affiché pour cet appel
  }
): void

showSource prend par défaut la valeur de l'option showSourceLocation du plugin, et prefix retombe sur le prefix configuré s'il est omis. tag sert aussi d'espace de noms pour le filtre à l'exécution. En 0.6, l'emplacement désigne le code du plugin ; voir showSourceLocation.

Type de charge utileRendu
stringtel quel
Errorerror.message (pile d'appels ajoutée si showStack: true)
objet / tableauJSON.stringify avec protection contre les références circulaires, tronqué à 500 caractères
Map / Setconverti en forme simple, puis sérialisé
ref Vue.value extrait, puis règles standard appliquées
nœud DOMrésumé <tag#id.class>
Promise[Promise] (non attendue)

$debug expose aussi des contrôles à l'exécution (ns, enable, disable, setLevel, setPrefixFilter ; voir Espaces de noms et filtrage) et des fonctions utilitaires (assert, time/timeEnd, count, group/groupEnd).

Niveaux

NiveauLibellé par défautCouleur par défaut (navigateur / terminal)Méthode console du navigateurOrdre
traceTrace#a855f7 / magentaconsole.trace0
debugDebug#6b7280 / grisconsole.debug1
infoInfo#3b82f6 / bleuconsole.info2
successSuccess#10b981 / vertconsole.log3
warningWarning#f59e0b / jauneconsole.warn4
errorError#ef4444 / rougeconsole.error5

minLevel conserve tous les niveaux supérieurs ou égaux au seuil (trace < debug < info < success < warning < error) ; levels est une liste blanche explicite. Les libellés et les couleurs se modifient niveau par niveau avec l'option colors.

Fonctions utilitaires

$debug porte des fonctions utilitaires à la manière de console. Chacune est retirée des builds de production avec les appels de base, y compris les formes méthode ($debug.time(...)) et chaînée ($debug.ns('x')('info')).

ts
$debug.assert(user.id != null, "user must have an id", { tag: "auth" });
// logue au niveau "error" UNIQUEMENT quand la condition est fausse

$debug.time("render");
renderExpensiveThing();
$debug.timeEnd("render"); // → MARS-TECH Debug [render] - render: 12.4ms

$debug.count("api-call"); // → api-call: 1
$debug.count("api-call"); // → api-call: 2

$debug.group("checkout");
$debug("info", "validating cart"); // indenté sous le groupe
$debug("info", "charging card");
$debug.groupEnd();
FonctionComportement
assert(condition, payload, opts?)Logue payload au niveau error uniquement quand condition est fausse.
time(label?) / timeEnd(label?)Logue le temps écoulé (ms) entre les deux appels au niveau debug. Libellé par défaut : default.
count(label?)Incrémente et logue un compteur nommé au niveau debug.
group(label?) / groupEnd()Indente la sortie suivante d'un niveau (le libellé, s'il est fourni, est logué comme titre).

Le libellé sert aussi d'espace de noms ou de tag : les fonctions utilitaires respectent donc le filtre actif. Le chronométrage utilise performance.now() quand il est disponible.