{ "root": true, "ignorePatterns": [ "projects/**/*" ], "overrides": [ { "files": [ "*.ts" ], "parserOptions": { "project": [ "tsconfig.json", "e2e/tsconfig.json" ], "createDefaultProgram": true }, "extends": [ "plugin:@angular-eslint/recommended", // // "plugin:@angular-eslint/ng-cli-compat", // "plugin:@angular-eslint/ng-cli-compat--formatting-add-on", "plugin:@angular-eslint/template/process-inline-templates", "plugin:@typescript-eslint/recommended" ], "env": { "browser": true, "es6": true, "node": true }, "plugins": [ // "eslint-plugin-import", "eslint-plugin-jsdoc", "eslint-plugin-prefer-arrow" ], "rules": { // // "plugin:@angular-eslint/recommended", // "@angular-eslint/component-class-suffix": "error", // "@angular-eslint/contextual-lifecycle": "error", // "@angular-eslint/directive-class-suffix": "error", // "@angular-eslint/no-conflicting-lifecycle": "error", // "@angular-eslint/no-empty-lifecycle-method": "error", // "@angular-eslint/no-host-metadata-property": "error", // "@angular-eslint/no-input-rename": "error", // "@angular-eslint/no-inputs-metadata-property": "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/use-lifecycle-interface": "warn", // "@angular-eslint/use-pipe-transform-interface": "error", "@angular-eslint/component-max-inline-declarations": "error", "@angular-eslint/component-selector": [ "error", { "type": "element", "prefix": "app", "style": "kebab-case" } ], "@angular-eslint/directive-selector": [ "error", { "type": "attribute", "prefix": "app", "style": "camelCase" } ], "@angular-eslint/no-attribute-decorator": "error", "@angular-eslint/no-forward-ref": "error", "@angular-eslint/no-lifecycle-call": "error", "@angular-eslint/no-pipe-impure": "error", "@angular-eslint/no-queries-metadata-property": "error", "@angular-eslint/prefer-inject": "off", "@angular-eslint/prefer-output-readonly": "error", "@angular-eslint/use-component-selector": "error", "@angular-eslint/use-component-view-encapsulation": "error", "@typescript-eslint/ban-types": "off", "@typescript-eslint/consistent-type-definitions": "error", "@typescript-eslint/explicit-member-accessibility": [ "error", { "accessibility": "explicit", "ignoredMethodNames": [], "overrides": { "accessors": "explicit", "constructors": "no-public", // "methods": "explicit", "methods": "off", "properties": "off", "parameterProperties": "explicit" } } ], // "@typescript-eslint/member-ordering": "error", "@typescript-eslint/member-ordering": "off", // "@typescript-eslint/naming-convention": "error", "@typescript-eslint/naming-convention": [ "warn", { "selector": "variable", "format": [ "camelCase" ] } ], "@typescript-eslint/no-shadow": [ "error", { "hoist": "all" } ], // "@typescript-eslint/no-var-requires": "off", "@typescript-eslint/no-var-requires": "error", "arrow-parens": "error", "brace-style": [ "warn", "1tbs", { "allowSingleLine": true } ], // "complexity": "off", "complexity": [ "error", { "max": 10 // 5 // 20 } ], "jsdoc/newline-after-description": "off", "max-classes-per-file": [ "error", 1 ], "max-len": [ "error", 140 // 80 ], "max-lines": [ "error", 305 ], "max-lines-per-function": [ "error", 25 // 20 ], "max-statements": [ "error", 20 // 10 ], "no-console": [ "error", { "allow": [ "log", "warn", "dir", "timeLog", "assert", "clear", "count", "countReset", "group", "groupEnd", "table", "dirxml", "error", "groupCollapsed", "Console", "profile", "profileEnd", "timeStamp", "context" ] } ], // "no-fallthrough": "error", "no-fallthrough": "warn", "no-global-assign": "error", "no-invalid-this": "off", "no-multiple-empty-lines": "error", "no-redeclare": "error", "no-shadow": "off", // "no-underscore-dangle": "error", "no-underscore-dangle": "warn", "no-undef": "error", "no-undefined": "off", "padded-blocks": [ "error", "never" ], "prefer-arrow/prefer-arrow-functions": "error", "prefer-const": "error", "quote-props": [ "error", "as-needed" ], // "@typescript-eslint/semi": [ // "error", // "always" // ] "@typescript-eslint/semi": "off", "@typescript-eslint/no-array-constructor": "off", "@typescript-eslint/no-empty-object-type": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-this-alias": "off", "@typescript-eslint/no-unnecessary-type-constraint": "off", "@typescript-eslint/no-unused-vars": "off", "@angular-eslint/prefer-standalone": "off" } }, { "files": [ "*.html" ], "extends": [ "plugin:@angular-eslint/template/recommended" ], "rules": { "@angular-eslint/template/cyclomatic-complexity": [ "error", { "maxComplexity": 12 } ], "@angular-eslint/template/no-autofocus": "error", "@angular-eslint/template/no-positive-tabindex": "error" // , // "contextual-decorator": "error", // "no-unused-css": "error", // "prefer-inline-decorator": "error", // "template-accessibility-alt-text": "error", // "template-accessibility-elements-content": "error", // "template-accessibility-label-for": "error", // "template-accessibility-table-scope": "error", // "template-accessibility-valid-aria": "error", // "template-click-events-have-key-events": "error", // "template-conditional-complexity": [ // "error", // 4 // ], // "template-mouse-events-have-key-events": "error", // "template-no-distracting-elements": "error", // "template-use-track-by-function": "error" } }, { "files": [ "*.js" ], "parserOptions": { "ecmaVersion": 2022 }, "env": { "es6": true } } ], "globals": { "globalThis": "readonly", "describe": "readonly", "fdescribe": "readonly", "xdescribe": "readonly", "beforeEach": "readonly", "it": "readonly", "fit": "readonly", "xit": "readonly", "expect": "readonly", "afterEach": "readonly", "jasmine": "readonly", "console": "readonly", "confirm": "readonly", "document": "readonly", "setTimeout": "readonly", "localStorage": "readonly", "fetch": "readonly", "location": "readonly" } }