Dernière fournée de corrections Sonar
Mise en place de MegaLinter ; web-lint pour la partie code quality sur la CI, Trivy pour la partie CVE
This commit is contained in:
63
web/eslint.config.js
Normal file
63
web/eslint.config.js
Normal file
@@ -0,0 +1,63 @@
|
||||
// @ts-check
|
||||
const eslint = require("@eslint/js");
|
||||
const { defineConfig } = require("eslint/config");
|
||||
const tseslint = require("typescript-eslint");
|
||||
const angular = require("angular-eslint");
|
||||
// Règles qualité "à la Sonar" (bugs, code smells, complexité) portées dans
|
||||
// ESLint — remplace l'analyse SonarQube côté TypeScript.
|
||||
const sonarjs = require("eslint-plugin-sonarjs");
|
||||
|
||||
module.exports = defineConfig([
|
||||
{
|
||||
files: ["**/*.ts"],
|
||||
extends: [
|
||||
eslint.configs.recommended,
|
||||
tseslint.configs.recommended,
|
||||
tseslint.configs.stylistic,
|
||||
angular.configs.tsRecommended,
|
||||
sonarjs.configs.recommended,
|
||||
],
|
||||
processor: angular.processInlineTemplates,
|
||||
rules: {
|
||||
"@angular-eslint/directive-selector": [
|
||||
"error",
|
||||
{
|
||||
type: "attribute",
|
||||
prefix: "app",
|
||||
style: "camelCase",
|
||||
},
|
||||
],
|
||||
"@angular-eslint/component-selector": [
|
||||
"error",
|
||||
{
|
||||
type: "element",
|
||||
prefix: "app",
|
||||
style: "kebab-case",
|
||||
},
|
||||
],
|
||||
// Modernisation constructeur → inject() : 567 occurrences dans l'existant.
|
||||
// Pas un bug — chantier one-shot à mener via la migration officielle
|
||||
// `ng generate @angular/core:inject`, puis repasser la règle en "error".
|
||||
"@angular-eslint/prefer-inject": "off",
|
||||
// Math.random() est légitime ici : tables aléatoires / jets de dés = le
|
||||
// domaine métier. Aucun usage cryptographique côté front.
|
||||
"sonarjs/pseudo-random": "off",
|
||||
},
|
||||
},
|
||||
{
|
||||
files: ["**/*.html"],
|
||||
extends: [
|
||||
angular.configs.templateRecommended,
|
||||
angular.configs.templateAccessibility,
|
||||
],
|
||||
rules: {
|
||||
// Accessibilité : ~127 findings sur l'existant. En "warn" (visibles,
|
||||
// non bloquants) le temps de résorber le backlog — repasser en "error"
|
||||
// règle par règle au fil des corrections.
|
||||
"@angular-eslint/template/label-has-associated-control": "warn",
|
||||
"@angular-eslint/template/click-events-have-key-events": "warn",
|
||||
"@angular-eslint/template/interactive-supports-focus": "warn",
|
||||
"@angular-eslint/template/no-autofocus": "warn",
|
||||
},
|
||||
}
|
||||
]);
|
||||
Reference in New Issue
Block a user