UNPKG

@team23/eslint-config-team23-angular

Version:

A set of eslint rules used by TEAM23 for angular projects

96 lines 4.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const typescript_eslint_1 = tslib_1.__importDefault(require("typescript-eslint")); const angular_eslint_1 = tslib_1.__importDefault(require("angular-eslint")); const typescriptConfig = typescript_eslint_1.default.config({ name: 'team23/angular/core/typescript', files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], extends: angular_eslint_1.default.configs.tsRecommended, processor: Object.assign(Object.assign({}, angular_eslint_1.default.processInlineTemplates), { // Eslint flat config processors fail without a meta.name property meta: { name: 'angular-eslint-process-inline-templates', } }), languageOptions: { parserOptions: { project: ['tsconfig.?*.json'], createDefaultProgram: true, }, }, rules: { '@angular-eslint/no-forward-ref': 'off', '@angular-eslint/component-class-suffix': ['error', { suffixes: ['Component', 'View'] }], '@angular-eslint/component-max-inline-declarations': 'error', '@angular-eslint/component-selector': 'error', '@angular-eslint/contextual-lifecycle': 'error', '@angular-eslint/directive-class-suffix': ['error', { suffixes: ['Directive'] }], '@angular-eslint/directive-selector': 'error', '@angular-eslint/no-attribute-decorator': 'error', '@angular-eslint/no-conflicting-lifecycle': 'error', '@angular-eslint/no-input-prefix': 'error', '@angular-eslint/no-input-rename': 'error', '@angular-eslint/no-inputs-metadata-property': 'error', '@angular-eslint/no-lifecycle-call': 'error', '@angular-eslint/no-output-native': 'error', '@angular-eslint/no-output-on-prefix': 'error', '@angular-eslint/no-output-rename': 'error', '@angular-eslint/no-outputs-metadata-property': 'error', '@angular-eslint/no-pipe-impure': 'error', '@angular-eslint/no-queries-metadata-property': 'error', '@angular-eslint/prefer-on-push-component-change-detection': 'error', '@angular-eslint/prefer-output-readonly': 'error', '@angular-eslint/use-component-selector': 'error', '@angular-eslint/use-component-view-encapsulation': 'error', '@angular-eslint/use-lifecycle-interface': 'error', '@angular-eslint/use-pipe-transform-interface': 'error', '@angular-eslint/prefer-signals': ['error'], }, }); const templateConfig = typescript_eslint_1.default.config({ name: 'team23/angular/core/template', files: ['**/*.html'], extends: angular_eslint_1.default.configs.templateRecommended, rules: { '@angular-eslint/template/i18n': 'off', '@angular-eslint/template/no-positive-tabindex': 'error', '@angular-eslint/template/banana-in-box': 'error', '@angular-eslint/template/no-any': 'error', '@angular-eslint/template/no-autofocus': 'error', '@angular-eslint/template/no-distracting-elements': 'error', '@angular-eslint/template/no-negated-async': 'error', '@angular-eslint/template/conditional-complexity': 'error', '@angular-eslint/template/cyclomatic-complexity': 'error', '@angular-eslint/template/no-call-expression': 'error', '@angular-eslint/template/use-track-by-function': 'error', '@angular-eslint/template/mouse-events-have-key-events': 'error', '@angular-eslint/template/click-events-have-key-events': 'error', '@angular-eslint/template/alt-text': 'error', '@angular-eslint/template/elements-content': 'error', '@angular-eslint/template/interactive-supports-focus': 'error', '@angular-eslint/template/label-has-associated-control': 'error', '@angular-eslint/template/role-has-required-aria': 'error', '@angular-eslint/template/table-scope': 'error', '@angular-eslint/template/valid-aria': 'error', '@angular-eslint/template/prefer-self-closing-tags': 'error', '@angular-eslint/template/attributes-order': [ 'error', { alphabetical: false, order: [ 'STRUCTURAL_DIRECTIVE', 'TEMPLATE_REFERENCE', 'ATTRIBUTE_BINDING', 'INPUT_BINDING', 'TWO_WAY_BINDING', 'OUTPUT_BINDING', ], }, ], }, }); exports.default = [ ...typescriptConfig, ...templateConfig, ]; //# sourceMappingURL=angular-config.cjs.map