import vitest from '@vitest/eslint-plugin'; import angular from 'angular-eslint'; import prettierPlugin from 'eslint-plugin-prettier'; import tseslint from 'typescript-eslint'; export default tseslint.config( { ignores: ['node_modules', 'dist', 'coverage', '*.config.*'], }, { files: ['src/**/*.ts'], extends: [...tseslint.configs.recommended, ...angular.configs.tsRecommended], processor: angular.processInlineTemplates, plugins: { prettier: prettierPlugin, }, rules: { 'prettier/prettier': [ 'warn', { printWidth: 100, singleQuote: true, endOfLine: 'lf', }, ], '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase', }, ], '@angular-eslint/component-selector': [ 'error', { type: 'element', prefix: 'app', style: 'kebab-case', }, ], '@angular-eslint/prefer-inject': 'off', '@typescript-eslint/no-explicit-any': 'off', }, }, { files: ['src/**/*.html'], extends: [...angular.configs.templateRecommended], }, { files: ['src/**/*.spec.ts'], languageOptions: { globals: vitest.environments.env.globals, }, plugins: { vitest, }, rules: { ...vitest.configs.recommended.rules, 'vitest/no-conditional-expect': 'off', }, }, );