Skip to content

Refactorisation lint : Ă©tat d'avancement ​

Étapes accomplies ​

  • Garde-fous CI : le workflow Quality exĂ©cute systĂ©matiquement ESLint (script lint:ci) et la vĂ©rification TypeScript (typecheck) sur chaque push et pull request, ce qui couvre les exigences de l'Ă©tape 1 du plan.【F:.github/workflows/quality.yml†L1-L38】
  • Baseline tolĂ©rante : la configuration ESLint actuelle abaisse les rĂšgles les plus bruyantes au niveau warn, tandis que lint:ci n'Ă©choue que sur les erreurs. Cela correspond Ă  l'Ă©tape 2 (option A) pour accepter l'Ă©tat existant tout en empĂȘchant les rĂ©gressions supplĂ©mentaires.【F:.eslintrc.cjs†L1-L60】【F:package.json†L5-L38】

Étape 3 : corrections automatiques sans risque ​

Ce qui est accompli ​

  • Les derniers pĂ©rimĂštres non traitĂ©s (routes, classes, scripts hĂ©ritĂ©s tvkit) ont Ă©tĂ© formatĂ©s avec Prettier et eslint --fix --fix-type problem, ce qui ferme le chantier "mise en forme automatique" sur l'ensemble du front. On le constate notamment sur le layout de connectivitĂ©, les classes de plateformes et les usines TV dĂ©sormais alignĂ©s sur le style partagĂ©.【F:src/routes/(connectivity)/+layout.svelte†L1-L173】【F:src/lib/classes/platforms/identifier.ts†L1-L60】【F:src/lib/classes/platforms/tvLauncher.ts†L1-L31】
  • Les composants Svelte normalisĂ©s lors des itĂ©rations prĂ©cĂ©dentes conservent une structure stable (imports triĂ©s, attributs Svelte regroupĂ©s), ce qui facilite l'identification des avertissements mĂ©tiers restants et limite les diffs parasites pour la suite de la refactorisation.【F:src/lib/components/common/Modal.svelte†L1-L270】【F:src/lib/components/area/Widget.svelte†L1-L123】

Étape 4 : durcir progressivement les rùgles ​

L'exĂ©cution de npm run lint ne remonte plus d'erreurs bloquantes mais laisse 368 avertissements, majoritairement des variables inutilisĂ©es, des any rĂ©siduels et des dĂ©clarations dans des switch LG hĂ©ritĂ©s.【f5800d†L1-L128】 Pour franchir le palier suivant sans casser la build :

  1. Nettoyage automatique ciblé : lancer eslint --fix --fix-type problem sur les pĂ©rimĂštres les plus bavards (src/lib/components, src/lib/utilsModals.ts, src/routes/(connectivity)) pour Ă©liminer les avertissements "prefer-const" et les cas gĂ©rables automatiquement avant d'attaquer la dette mĂ©tier.【f5800d†L39-L128】
  2. Prioriser les avertissements critiques : traiter manuellement les warnings de sĂ©curitĂ©/accessibilitĂ© (svelte/no-at-html-tags, svelte/valid-compile, a11y-missing-attribute) afin de pouvoir promouvoir ces rĂšgles en error dans une prochaine PR et d'Ă©viter les rĂ©gressions sur les parcours d'affichage.【f5800d†L21-L128】

Concept ​

La refactorisation ESLint vise à améliorer la qualité du code en configurant des rÚgles strictes, en automatisant les corrections, et en nettoyant les avertissements pour une base de code plus maintenable.

Fonctionnement ​

Processus étape par étape : mise en place de garde-fous CI, corrections automatiques, durcissement progressif des rÚgles.

Diagrammes ​


e-novatis
Date de derniĂšre mise Ă  jour : date inconnue 3. Planifier la montĂ©e en sĂ©vĂ©rité : une fois les variables inutilisĂ©es nettoyĂ©es, prĂ©parer un changement de configuration ESLint en Ă©rigeant @typescript-eslint/no-unused-vars et prefer-const au niveau error, puis mettre Ă  jour le workflow CI pour qu'il Ă©choue en cas de rĂ©gression.【F:.eslintrc.cjs†L1-L60】【F:.github/workflows/quality.yml†L1-L38】

Cette approche conserve l'esprit "safe-first" : on consomme d'abord les autofix, puis on sécurise les rÚgles sensibles (sécurité, accessibilité) avant de durcir les rÚgles structurelles dans la configuration.