11// @ts -check
22const eslint = require ( '@eslint/js' ) ;
3+ const { defineConfig } = require ( 'eslint/config' ) ;
34const tseslint = require ( 'typescript-eslint' ) ;
45const angular = require ( 'angular-eslint' ) ;
5- const pluginImport = require ( 'eslint-plugin-import' ) ;
6+
67const pluginSimpleImportSort = require ( 'eslint-plugin-simple-import-sort' ) ;
78const pluginUnusedImports = require ( 'eslint-plugin-unused-imports' ) ;
89const eslintPluginPrettierRecommended = require ( 'eslint-plugin-prettier/recommended' ) ;
9- const angularEslintTemplate = require ( '@angular-eslint/eslint-plugin-template' ) ;
10- const angularTemplateParser = require ( '@angular-eslint/template-parser' ) ;
1110
12- module . exports = tseslint . config (
11+ module . exports = defineConfig (
1312 {
1413 files : [ '**/*.ts' ] ,
1514 extends : [
1615 eslint . configs . recommended ,
17- ... tseslint . configs . recommended ,
18- ... tseslint . configs . stylistic ,
19- ... angular . configs . tsRecommended ,
16+ tseslint . configs . recommended ,
17+ tseslint . configs . stylistic ,
18+ angular . configs . tsRecommended ,
2019 eslintPluginPrettierRecommended ,
2120 ] ,
2221 processor : angular . processInlineTemplates ,
2322 plugins : {
24- import : pluginImport ,
2523 'simple-import-sort' : pluginSimpleImportSort ,
2624 'unused-imports' : pluginUnusedImports ,
2725 } ,
2826 rules : {
2927 '@typescript-eslint/no-unused-vars' : [ 'error' , { argsIgnorePattern : '^_' , varsIgnorePattern : '^_' } ] ,
30-
3128 '@angular-eslint/directive-selector' : [
3229 'error' ,
3330 {
@@ -44,9 +41,7 @@ module.exports = tseslint.config(
4441 style : 'kebab-case' ,
4542 } ,
4643 ] ,
47- 'import/first' : 'error' ,
48- 'import/no-duplicates' : 'error' ,
49- 'import/newline-after-import' : 'error' ,
44+ 'no-duplicate-imports' : 'error' ,
5045 'simple-import-sort/imports' : [
5146 'error' ,
5247 {
@@ -58,7 +53,7 @@ module.exports = tseslint.config(
5853 [ '^ngx-' , '^@ngx' , '^ng-' ] ,
5954
6055 // Third-party packages (primeng)
61- [ '^@primeng' , '^primeng' ] ,
56+ [ '^@primeng' , '^primeng' , '^@primeuix' , '^primeuix' ] ,
6257
6358 // RxJS packages (rxjs or @rxjs/...)
6459 [ '^rxjs' , '^rxjs/operators' ] ,
@@ -86,26 +81,29 @@ module.exports = tseslint.config(
8681 } ,
8782 } ,
8883 {
89- files : [ '**/*.html' ] ,
90- languageOptions : {
91- parser : angularTemplateParser ,
92- } ,
93- extends : [ ...angular . configs . templateRecommended , ...angular . configs . templateAccessibility ] ,
84+ files : [ 'src/app/**/*.html' ] ,
85+ extends : [
86+ angular . configs . templateRecommended ,
87+ angular . configs . templateAccessibility ,
88+ eslintPluginPrettierRecommended ,
89+ ] ,
9490 rules : {
95- '@angular-eslint/template/banana-in-box' : [ 'error' ] ,
96- '@angular-eslint/template/eqeqeq' : [ 'error' ] ,
97- '@angular-eslint/template/no-negated-async' : [ 'error' ] ,
98- '@angular-eslint/template/alt-text' : [ 'error' ] ,
99- '@angular-eslint/template/click-events-have-key-events' : [ 'error' ] ,
100- '@angular-eslint/template/elements-content' : [ 'error' ] ,
101- '@angular-eslint/template/interactive-supports-focus' : [ 'error' ] ,
102- '@angular-eslint/template/label-has-associated-control' : [ 'error' ] ,
103- '@angular-eslint/template/mouse-events-have-key-events' : [ 'error' ] ,
104- '@angular-eslint/template/no-autofocus' : [ 'error' ] ,
105- '@angular-eslint/template/no-distracting-elements' : [ 'error' ] ,
106- '@angular-eslint/template/role-has-required-aria' : [ 'error' ] ,
107- '@angular-eslint/template/table-scope' : [ 'error' ] ,
108- '@angular-eslint/template/valid-aria' : [ 'error' ] ,
91+ '@angular-eslint/template/banana-in-box' : 'error' ,
92+ '@angular-eslint/template/eqeqeq' : 'error' ,
93+ '@angular-eslint/template/no-negated-async' : 'error' ,
94+ '@angular-eslint/template/prefer-control-flow' : 'error' ,
95+
96+ '@angular-eslint/template/alt-text' : 'error' ,
97+ '@angular-eslint/template/click-events-have-key-events' : 'error' ,
98+ '@angular-eslint/template/elements-content' : 'error' ,
99+ '@angular-eslint/template/interactive-supports-focus' : 'error' ,
100+ '@angular-eslint/template/label-has-associated-control' : 'error' ,
101+ '@angular-eslint/template/mouse-events-have-key-events' : 'error' ,
102+ '@angular-eslint/template/no-autofocus' : 'error' ,
103+ '@angular-eslint/template/no-distracting-elements' : 'error' ,
104+ '@angular-eslint/template/role-has-required-aria' : 'error' ,
105+ '@angular-eslint/template/table-scope' : 'error' ,
106+ '@angular-eslint/template/valid-aria' : 'error' ,
109107 } ,
110108 } ,
111109 {
0 commit comments