KEYCLOAKIFY-STOU-THEME/eslint.config.js

79 lines
2.0 KiB
JavaScript

// @ts-check
import eslint from '@eslint/js';
import tseslint from 'typescript-eslint';
import angular from 'angular-eslint';
import prettier from 'eslint-plugin-prettier';
import storybook from 'eslint-plugin-storybook';
export default tseslint.config(
{
files: ['*.stories.@(ts|tsx|js|jsx|mjs|cjs)', '*.story.@(ts|tsx|js|jsx|mjs|cjs)'],
plugins: {
prettier,
storybook
},
rules: {
'import/no-anonymous-default-export': 'off',
'prettier/prettier': ['error', {}],
},
},
{
files: ['**/*.ts'],
plugins: {
prettier,
},
extends: [eslint.configs.recommended, ...tseslint.configs.recommended, ...tseslint.configs.stylistic, ...angular.configs.tsRecommended],
processor: angular.processInlineTemplates,
rules: {
'@typescript-eslint/consistent-type-definitions': 'off',
'@typescript-eslint/no-inferrable-types': 'off',
'@typescript-eslint/no-namespace': 'off',
'@typescript-eslint/no-empty-object-type': 'off',
'@angular-eslint/directive-selector': [
'error',
{
type: 'attribute',
prefix: 'kc',
style: 'camelCase',
},
],
'@angular-eslint/component-selector': [
'error',
{
type: 'element',
prefix: 'kc',
style: 'kebab-case',
},
],
'prettier/prettier': [
'error',
{},
{
usePrettierrc: true,
},
],
},
},
{
files: ['**/*.html'],
plugins: {
prettier,
},
extends: [...angular.configs.templateRecommended, ...angular.configs.templateAccessibility],
rules: {
'@angular-eslint/template/interactive-supports-focus': 'off',
'@angular-eslint/template/click-events-have-key-events': 'off',
'@angular-eslint/template/label-has-associated-control': 'off',
'@angular-eslint/template/no-autofocus': 'off',
'prettier/prettier': [
'error',
{ parser: 'angular' },
{
usePrettierrc: true,
},
],
},
},
);