Compare commits

...

1 commit

Author SHA1 Message Date
870fcbf3a7 chore(lint): ajoute noNonNullAssertion, useConsistentArrayType, useConsistentTypeDefinitions
Trois règles style ajoutées à biome.json :
- noNonNullAssertion (warn) : déconseille `valeur!`
- useConsistentArrayType (syntax: shorthand) : impose T[] (déjà la
  norme partout dans le repo, aucune réécriture nécessaire)
- useConsistentTypeDefinitions (style: interface) : impose `interface`
  pour tout type objet

0 violation sur les 200 fichiers du repo — déjà conforme. Documenté
dans specs/dev-conventions.md (tableau des règles Biome actives).

Corrige aussi la config du poste : node_modules pointait encore vers
Biome 1.9.4 alors que package.json déclare ^2.5.9 depuis le merge de
la #59 (ce checkout n'avait jamais été réinstallé depuis) — pnpm
install corrige, aucun changement de lockfile.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-21 13:38:54 +02:00
2 changed files with 14 additions and 0 deletions

View file

@ -34,6 +34,17 @@
"nursery": {
"noFloatingPromises": "error"
},
"style": {
"noNonNullAssertion": "warn",
"useConsistentArrayType": {
"level": "error",
"options": { "syntax": "shorthand" }
},
"useConsistentTypeDefinitions": {
"level": "error",
"options": { "style": "interface" }
}
},
"suspicious": {
"noConsole": {
"level": "error",

View file

@ -127,6 +127,9 @@ doubles, point-virgules toujours, virgules finales partout
| `suspicious.noExplicitAny` | interdit `any` explicite (déjà dans `recommended`, listée ici pour la visibilité) — utiliser un type précis ou `unknown` + vérification |
| `suspicious.noConsole` (`allow: ["error","warn","info","debug","table","assert"]`) | interdit `console.log` nu ; les niveaux nommés restent autorisés, mais uniquement depuis `LoggerService` (voir plus bas) — le reste du code ne touche jamais `console` directement |
| `nursery.noFloatingPromises` | interdit une Promise ni `await`-ée, ni `.then(ok, err)`/`.catch()`, ni `void`-ée, ni `return`-ée — un `useEffect` qui lance un fetch fire-and-forget doit soit avoir un `.catch()`, soit être explicitement `void navigate(...)` |
| `style.noNonNullAssertion` (warn) | déconseille `valeur!` — préférer un vrai contrôle (`if`, `??`, un guard) à l'affirmation "je sais que c'est non-null" |
| `style.useConsistentArrayType` (`syntax: "shorthand"`) | impose `T[]`, jamais `Array<T>` — déjà la syntaxe utilisée partout dans le repo |
| `style.useConsistentTypeDefinitions` (`style: "interface"`) | impose `interface` pour tout type objet, jamais `type X = { ... }``type` reste légitime pour une union/intersection/alias, seule la forme objet est concernée |
`noFloatingPromises` est une règle *type-aware* (nursery, nécessite Biome
≥ 2.0) — activée directement sous `rules.nursery` sans passer par