{ "extends": [ "@typescript-eslint/recommended", "eslint:recommended" ], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint"], "rules": { // Qualité du code "complexity": ["warn", 10], "max-lines": ["warn", 300], "max-lines-per-function": ["warn", 50], "max-params": ["warn", 4], "max-depth": ["warn", 4], // TypeScript spécifique "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-unused-vars": "error", "@typescript-eslint/explicit-function-return-type": "warn", "@typescript-eslint/no-non-null-assertion": "warn", "@typescript-eslint/prefer-nullish-coalescing": "error", "@typescript-eslint/prefer-optional-chain": "error", // Bonnes pratiques "no-console": "warn", "no-debugger": "error", "no-alert": "warn", "prefer-const": "error", "no-var": "error", "eqeqeq": "error", "curly": "error", // Sécurité "no-eval": "error", "no-implied-eval": "error", "no-new-func": "error", // Performance "no-loop-func": "error", "no-await-in-loop": "warn" }, "env": { "browser": true, "es2021": true, "node": true }, "ignorePatterns": [ "dist/", "node_modules/", "*.js" ] }