{ "env": { "browser": false, "es2021": true, "node": true }, "parserOptions": { "ecmaVersion": 2021, "sourceType": "module", "parser": "@typescript-eslint/parser" }, "extends": [ "eslint:recommended", "airbnb-base", "prettier", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ], "plugins": ["prettier", "eslint-plugin-tsdoc", "@typescript-eslint"], "rules": { "no-console": 0, "no-control-regex": 0, "no-var": 2, "no-underscore-dangle": 0, "radix": 0, "no-multi-assign": 0, "no-shadow": 0, "no-new": 0, "import/no-unresolved": 0, "prettier/prettier": ["error"], // end of copied frontend rules "max-classes-per-file": 0, "max-len": [ "error", { "code": 140, "ignoreComments": true, "ignoreUrls": true, "ignoreTemplateLiterals": true } ], "no-param-reassign": 0, "implicit-arrow-linebreak": 0, "import/extensions": 0, "class-methods-use-this": 0, "tsdoc/syntax": "warn", "@typescript-eslint/no-empty-function": 0, "@typescript-eslint/no-this-alias": 0, "@typescript-eslint/no-non-null-assertion": 0, "@typescript-eslint/naming-convention": [ "error", { "selector": "memberLike", "modifiers": ["private"], "format": null, "leadingUnderscore": "require" }, { "selector": "memberLike", "modifiers": ["protected"], "format": null, "leadingUnderscore": "require" } ], "no-void": 0, "import/no-extraneous-dependencies": [ "error", { "devDependencies": ["**/*.test.ts", "**/*.spec.ts"] } ], "no-restricted-syntax": [ "error", { "selector": "ForInStatement", "message": "for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array." }, { "selector": "LabeledStatement", "message": "Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand." }, { "selector": "WithStatement", "message": "`with` is disallowed in strict mode because it makes code impossible to predict and optimize." } ], "import/prefer-default-export": "off", "@typescript-eslint/no-explicit-any": 0 }, "overrides": [ { "files": ["**/*.test.ts", "**/*.spec.ts"], "rules": { "no-unused-expressions": "off", "prefer-arrow-callback": "off", "func-names": "off" } } ] }