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>
This commit is contained in:
parent
52e379fcf7
commit
870fcbf3a7
2 changed files with 14 additions and 0 deletions
11
biome.json
11
biome.json
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue