{ "env": { "node": true, "browser": true, "es2021": true, "commonjs": true }, "extends": [ "airbnb-base", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 12, "sourceType": "module", "project": "./tsconfig.json" }, "plugins": [ "@typescript-eslint" ], "rules": { "import/extensions": "off", "max-len": [2, 120, 2, { "ignoreUrls": true, "ignoreComments": false }], "import/no-extraneous-dependencies": ["error", {"optionalDependencies": true, "peerDependencies": false}], "class-methods-use-this": ["error", { "enforceForClassFields": false }], "lines-between-class-members": "off", "no-useless-constructor": "off", "@typescript-eslint/lines-between-class-members": ["error", "always"], "default-param-last": "off", "@typescript-eslint/default-param-last": ["error"], "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": ["error"], "no-shadow": "off", "@typescript-eslint/no-shadow": ["error"], "no-use-before-define": "off", "@typescript-eslint/no-use-before-define": ["error"], "require-await": "off", "@typescript-eslint/require-await": ["error"], "@typescript-eslint/type-annotation-spacing": ["error"], "@typescript-eslint/prefer-namespace-keyword": ["error"], "@typescript-eslint/prefer-literal-enum-member": ["error"], "@typescript-eslint/no-require-imports": ["error"], "@typescript-eslint/promise-function-async": ["error", { "allowedPromiseNames": ["Thenable"], "checkArrowFunctions": true, "checkFunctionDeclarations": true, "checkFunctionExpressions": true, "checkMethodDeclarations": true }], "camelcase": "off", "no-underscore-dangle": "off", "@typescript-eslint/naming-convention": [ "error", { "selector": "default", "format": ["camelCase"] }, { "selector": "variable", "format": ["camelCase", "UPPER_CASE"] }, { "selector": "enumMember", "format": ["UPPER_CASE"] }, { "selector": "parameter", "format": ["camelCase"], "leadingUnderscore": "allow" }, { "selector": "memberLike", "modifiers": ["private"], "format": ["camelCase"], "leadingUnderscore": "require" }, { "selector": "memberLike", "modifiers": ["protected"], "format": ["camelCase"], "leadingUnderscore": "require" }, { "selector": "typeLike", "format": ["PascalCase"] }, { "selector": "interface", "format": ["PascalCase"], "prefix": ["I"] }, { "selector": "class", "modifiers": ["abstract"], "format": ["PascalCase"], "prefix": ["A"] }, { "selector": [ "classProperty", "objectLiteralProperty", "typeProperty", "classMethod", "objectLiteralMethod", "typeMethod", "accessor", "enumMember" ], "format": null, "modifiers": ["requiresQuotes"] } ] }, "settings": { "import/resolver": { "typescript": {} // this loads /tsconfig.json to eslint } } }