1// Neutralise les logs console en PRODUCTION - aucun bruit de dev dans la console 2// du navigateur des utilisateurs. Importmap ne minifie pas le JS (pas de build 3// step qui « strip » les `console.*`), donc on neutralise au RUNTIME. 4// 5// Importé EN PREMIER dans `application.js` â s'exécute AVANT Turbo et tous les 6// contrôleurs Stimulus (chargés ensuite), donc leurs logs sont déjà muets quand 7// ils tournent. 8// 9// `console.error` est CONSERVà : les vraies erreurs restent visibles (support / 10// QA) et sont de toute façon captées côté serveur par Sentry. 11// 12// Source de vérité de l'environnement : le meta `rails-env` posé par les layouts 13// (= `Rails.env`). Fail-safe : si le meta est absent (page/layout sans le tag), 14// on ne touche à rien â les logs restent, jamais de casse. 15const env = document.querySelector('meta[name="rails-env"]')?.content; 16 17if (env === "production") { 18 const noop = () => {}; 19 // Tout sauf `error` (et `assert`, qui n'émet que sur échec = signal d'erreur). 20 const SILENCED = [ 21 "log", "debug", "info", "warn", "trace", 22 "table", "dir", "dirxml", "group", "groupCollapsed", "groupEnd", 23 "count", "countReset", "time", "timeEnd", "timeLog", "profile", "profileEnd" 24 ]; 25 26 SILENCED.forEach((method) => { 27 if (typeof console[method] === "function") console[method] = noop; 28 }); 29}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.