{ "root": true, "ignorePatterns": ["**/*"], "plugins": ["@nrwl/nx"], "overrides": [ { "files": ["*.ts"], "rules": { "@nrwl/nx/enforce-module-boundaries": [ "error", { "enforceBuildableLibDependency": true, "allow": [ "@services/**", "@components/**", "@guards/**", "@users/**", "@i18n/**", "@utils/**", "@models/**", "@environments/**", "@shared/**", "@upload-download/**", "@translations/**" ], "depConstraints": [ { "sourceTag": "*", "onlyDependOnLibsWithTags": ["*"] } ] } ] } }, { "files": ["*.ts"], "extends": ["plugin:@nrwl/nx/typescript"] }, { "files": ["*.ts"], "extends": [ "plugin:@nrwl/nx/angular", "eslint:recommended", "plugin:@angular-eslint/recommended", "plugin:@angular-eslint/recommended--extra", "plugin:@angular-eslint/template/process-inline-templates", "plugin:prettier/recommended" ], "parserOptions": { "project": "./tsconfig.json" }, "rules": { "@angular-eslint/no-conflicting-lifecycle": "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": "error", "@angular-eslint/use-pipe-transform-interface": "error", "@typescript-eslint/consistent-type-definitions": "error", "@typescript-eslint/dot-notation": "off", "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/no-unsafe-assignment": "off", "@typescript-eslint/no-unsafe-return": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-misused-promises": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/indent": "off", "@typescript-eslint/lines-between-class-members": "off", "@typescript-eslint/ban-types": "off", "@typescript-eslint/explicit-member-accessibility": [ "error", { "accessibility": "no-public" } ], "@typescript-eslint/member-ordering": "error", "@typescript-eslint/naming-convention": [ "error", { "selector": "memberLike", "modifiers": ["readonly"], "format": ["UPPER_CASE", "camelCase"] }, { "selector": "enumMember", "format": ["UPPER_CASE"] }, { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, { "selector": "memberLike", "modifiers": ["protected"], "format": ["camelCase"], "leadingUnderscore": "require" }, { "selector": "memberLike", "modifiers": ["private", "readonly"], "format": ["UPPER_CASE", "camelCase"], "leadingUnderscore": "require" } ], "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-inferrable-types": [ "error", { "ignoreParameters": true } ], "@typescript-eslint/no-misused-new": "error", "@typescript-eslint/no-non-null-assertion": "error", "@typescript-eslint/no-shadow": [ "error", { "hoist": "all" } ], "@typescript-eslint/no-unused-expressions": "error", "@typescript-eslint/prefer-function-type": "error", "@typescript-eslint/unified-signatures": "error", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/unbound-method": "off", "@typescript-eslint/restrict-template-expressions": "off", "arrow-body-style": "error", "arrow-parens": ["error", "as-needed"], "constructor-super": "error", "eqeqeq": ["error", "smart"], "guard-for-in": "error", "id-blacklist": "off", "id-match": "off", "no-bitwise": "error", "no-caller": "error", "no-console": "off", "no-debugger": "error", "no-empty": "off", "no-eval": "error", "no-fallthrough": "error", "no-new-wrappers": "error", "no-restricted-imports": ["error", "rxjs/Rx"], "no-throw-literal": "error", "no-undef-init": "error", "no-underscore-dangle": "off", "no-var": "error", "no-else-return": "error", "prefer-const": "error", "radix": "error", "curly": "error", "class-methods-use-this": "off", "quotes": ["error", "single"], "comma-dangle": [ "error", { "arrays": "always-multiline", "objects": "always-multiline", "imports": "always-multiline", "exports": "always-multiline", "functions": "always-multiline" } ], "max-len": [ "error", { "code": 140, "tabWidth": 4, "ignoreComments": true, "ignorePattern": "^import .*" } ] } }, { "files": ["*.html"], "extends": ["plugin:@nrwl/nx/angular-template", "plugin:@angular-eslint/template/recommended"] }, { // https://github.com/angular-eslint/angular-eslint#notes-for-eslint-plugin-prettier-users "files": ["*.html"], "excludedFiles": ["*inline-template-*.component.html"], "extends": ["plugin:prettier/recommended"], "rules": { "prettier/prettier": [ "error", { "parser": "angular" } ] } } ] }