# Lint – Configuration ESLint

Configuration initialisée selon les règles du projet (Rappel des grandes règles / qualité du code).

## Fichiers

- **package.json** (racine) : scripts `lint`, `lint:web`, `lint:server` ; devDependencies `eslint`, `@eslint/js`, `eslint-plugin-jsdoc`.
- **eslint.config.js** : config plate (ESLint 9) pour `web/js/**/*.js` et `server/**/*.js` (hors `node_modules`).

## Règles activées (résumé)

- **Longueur / complexité** : max 250 lignes/fichier, 40 lignes/fonction, 4 paramètres, profondeur 4, complexité cyclomatique 10 (warn).
- **Non utilisés** : `no-unused-vars` (args/vars/erreurs commençant par `_` ignorés).
- **Égalité** : `eqeqeq` (=== / !==).
- **Variables** : `no-var`, `prefer-const`.
- **Contrôle** : `no-else-return`, `no-continue`, `no-labels`.
- **Console / debug** : `no-console` (warn, allow warn/error), `no-debugger`, `no-alert`.
- **Sécurité** : `no-eval`, `no-implied-eval`, `no-new-func`.
- **JSDoc** : `jsdoc/require-returns`, `jsdoc/check-param-names` (warn).

Règles non disponibles en core ESLint (à appliquer manuellement ou via plugin dédié) : `prefer-nullish-coalescing`, `prefer-optional-chain` (préférer `??` et `?.` selon les règles projet).

## Utilisation

```bash
npm run lint        # web/js + server (hors node_modules)
npm run lint:web    # web/js uniquement
npm run lint:server # server uniquement
```

## Conformité progressive

Le premier passage sur le dépôt signale des violations existantes (eqeqeq, no-continue, max-lines-per-function, complexity, etc.). Les corriger au fil de l’eau ou par lot ; ne pas désactiver les règles pour contourner.
