- eslint.config.js reprend l'exemple du README du paquet (préfixe app, comme dans
angular.json), plus les sorties ignorées par .gitignore (out-tsc, rapports
Playwright, cache de l'ETL…) : ESLint ne lit pas .gitignore, et un
playwright-report/index.html local serait sinon lu comme un template Angular.
- devDependencies aux mêmes plages que web-site (main) : eslint ^10.10.0,
@eslint/js ^10.0.1, typescript-eslint ^8.70.0, angular-eslint ^22.5.0. Le paquet
partagé les déclare en pairs optionnels : chaque dépôt qui l'importe les garde.
- Script "lint" : eslint .
`npm run lint` signale 37 erreurs existantes (14 prefer-inject, 18 no-unused-vars,
4 no-useless-assignment, 1 no-unused-expressions), corrigées dans les commits
suivants.
package-lock.json : angular-eslint tire @angular-devkit/core 22.2, qui épingle
picomatch 4.0.7 ; npm remonte donc picomatch 4.0.4 → 4.0.7 (et retire la copie
4.0.5 de vite), @jridgewell/sourcemap-codec 1.5.5 → 1.6.0, et remonte ora.
Vérifié depuis un `npm ci` propre contre main 822c699 : les 33 fichiers du
`ng build` de production ont le même sha256, et prettier --check, les 5 typechecks,
`ng test` (729 tests verts) et `playwright test --list` (17 tests) sont identiques.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
38 lines
1007 B
JavaScript
38 lines
1007 B
JavaScript
// @ts-check
|
|
const { defineConfig } = require('eslint/config');
|
|
const avalonBase = require('@avalon-vanguard/config/eslint');
|
|
const avalonAngular = require('@avalon-vanguard/config/eslint/angular');
|
|
|
|
module.exports = defineConfig([
|
|
{
|
|
// Build, test and Playwright output (see .gitignore): ESLint does not read .gitignore.
|
|
ignores: [
|
|
'dist/**',
|
|
'coverage/**',
|
|
'.angular/**',
|
|
'node_modules/**',
|
|
'out-tsc/**',
|
|
'tools/etl/.cache/**',
|
|
'e2e/test-output/**',
|
|
'test-results/**',
|
|
'playwright-report/**',
|
|
'blob-report/**',
|
|
],
|
|
},
|
|
{
|
|
files: ['**/*.ts'],
|
|
extends: [avalonBase, avalonAngular.typescript],
|
|
rules: {
|
|
'@angular-eslint/directive-selector': [
|
|
'error',
|
|
{ type: 'attribute', prefix: 'app', style: 'camelCase' },
|
|
],
|
|
'@angular-eslint/component-selector': [
|
|
'error',
|
|
{ type: 'element', prefix: 'app', style: 'kebab-case' },
|
|
],
|
|
},
|
|
},
|
|
avalonAngular.templates,
|
|
]);
|