79 lines
2.0 KiB
JavaScript
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,
|
|
},
|
|
],
|
|
},
|
|
},
|
|
);
|