Files
barker/bookie/eslint.config.js
Amritanshu ca94f8f57e Upgraded to Angular v21
Removed tailwind

Moved to vitest from karma/jasmine
2026-01-28 07:18:05 +00:00

77 lines
2.0 KiB
JavaScript

// @ts-check
const eslint = require('@eslint/js');
const { defineConfig } = require('eslint/config');
const tseslint = require('typescript-eslint');
const angular = require('angular-eslint');
const eslintConfigPrettier = require('eslint-config-prettier');
const unusedImports = require('eslint-plugin-unused-imports');
const perfectionist = require('eslint-plugin-perfectionist');
module.exports = defineConfig([
{
files: ['**/*.ts'],
ignores: ['**/*.spec.ts'],
extends: [
eslint.configs.recommended,
tseslint.configs.recommended,
tseslint.configs.stylistic,
angular.configs.tsRecommended,
eslintConfigPrettier,
],
languageOptions: {
parserOptions: {
project: './tsconfig.app.json', // <-- REQUIRED
tsconfigRootDir: __dirname,
},
},
processor: angular.processInlineTemplates,
plugins: {
unusedImports: unusedImports,
perfectionist: perfectionist,
},
rules: {
'@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': 'error',
'@/lines-between-class-members': [
'error',
'always',
{
exceptAfterSingleLine: true,
},
],
'no-duplicate-imports': 'error',
'@typescript-eslint/no-explicit-any': ['error'],
'unusedImports/no-unused-imports': 'error',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/no-deprecated': 'error',
'perfectionist/sort-imports': [
'error',
{
type: 'natural',
order: 'asc',
},
],
},
},
{
files: ['**/*.html'],
extends: [angular.configs.templateRecommended, angular.configs.templateAccessibility],
rules: {},
},
]);