{ "settings": { "import/resolver": { "typescript": {} }, "lintAllEsApis": true, "polyfills": [ "Promise", "URL", "URLSearchParams", "Number.isNaN", "Number.isInteger", "Array.from", "Array.prototype.find", "Array.prototype.includes", "String.prototype.endsWith", "String.prototype.startsWith", "String.prototype.includes", "Object.entries", "Object.values", "Element.prototype.dataset", "String.prototype.replaceAll", "TextEncoder", "TextDecoder", "String.fromCodePoint", "requestAnimationFrame", "cancelAnimationFrame" ] }, "env": { "browser": true, "es2021": true, "jest": true }, "overrides": [ { "files": ["*.js", "*.ts"], "extends": [ "airbnb-base", "airbnb-typescript/base", "plugin:@typescript-eslint/recommended", "plugin:sonarjs/recommended", "prettier", "plugin:compat/recommended" ], "plugins": ["@typescript-eslint", "unicorn", "compat", "@nx"], "parser": "@typescript-eslint/parser", "globals": {}, "parserOptions": { "ecmaVersion": 12, "sourceType": "module", "project": "./tsconfig.json" }, "rules": { "compat/compat": [ "warn", "defaults,Edge >= 80,Firefox >= 47,IE >= 11,Chrome >= 54,Safari >= 7,Opera >= 43" ], "import/prefer-default-export": "off", "unicorn/filename-case": [ "error", { "cases": { "camelCase": true, "pascalCase": true, "kebabCase": true } } ], "unicorn/no-instanceof-array": "error", "unicorn/no-static-only-class": "error", "unicorn/consistent-destructuring": "error", "unicorn/better-regex": "error", "unicorn/no-for-loop": "error", "unicorn/prefer-array-some": "error", "unicorn/explicit-length-check": "error", "unicorn/prefer-array-find": "error", "unicorn/no-lonely-if": "error", "unicorn/prefer-includes": "off", "unicorn/prefer-array-flat-map": "error", "unicorn/no-useless-spread": "error", "unicorn/no-useless-length-check": "error", "unicorn/prefer-export-from": "error", "sonarjs/prefer-immediate-return": "off", "sonarjs/no-nested-template-literals": "off", "sonarjs/max-switch-cases": "off", "sonarjs/cognitive-complexity": ["error", 40], "@typescript-eslint/lines-between-class-members": "off", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-shadow": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-unused-vars": [ "error", { "ignoreRestSiblings": true, "varsIgnorePattern": "^CatchErr" } ], "@typescript-eslint/no-non-null-asserted-optional-chain": "off", "@typescript-eslint/no-unnecessary-type-constraint": "off", "@typescript-eslint/no-useless-constructor": ["error"], "@typescript-eslint/consistent-type-imports": [ "error", { "fixStyle": "inline-type-imports" } ], "@typescript-eslint/no-import-type-side-effects": "error", "no-console": "off", "no-plusplus": "off", "import/no-extraneous-dependencies": "off", "@nx/enforce-module-boundaries": [ "error", { "allow": [], "banTransitiveDependencies": true, "depConstraints": [ { "sourceTag": "type:lib", "onlyDependOnLibsWithTags": ["type:lib"] }, { "sourceTag": "type:sdk", "onlyDependOnLibsWithTags": ["type:lib"] }, { "sourceTag": "type:app", "onlyDependOnLibsWithTags": ["type:sdk"] }, { "sourceTag": "scope:shared", "onlyDependOnLibsWithTags": ["scope:shared"] } ] } ] } }, { "files": ["{package,project}.json"], "parser": "jsonc-eslint-parser", "rules": { "@nx/dependency-checks": [ "warn", { "buildTargets": ["build"], "checkMissingDependencies": true, "checkObsoleteDependencies": true, "checkVersionMismatches": true, "ignoredDependencies": [] } ] } } ] }