{ "root": true, "env": { "browser": true, "es2022": true, "jest": true }, "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "prettier", "import"], "extends": [ "prettier", "eslint:recommended", "eslint-config-prettier", "plugin:import/recommended", "plugin:import/typescript", "plugin:prettier/recommended", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/eslint-recommended" ], "settings": { "import/resolver": { "node": { "extensions": [".js", ".ts"], "paths": ["./src"] }, "typescript": { "alwaysTryTypes": true } }, "import/parsers": { "@typescript-eslint/parser": [".ts"] }, "extensions": [".js", ".ts"], "import/ignore": ["node_modules"] }, "parserOptions": { "ecmaVersion": 2022, "sourceType": "module", "project": ["./tsconfig.json"], "ecmaFeatures": { "jsx": false, "arrowFunctions": true } }, "rules": { "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-var-requires": "error", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/quotes": ["error", "double"], "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-empty-interface": "error", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/ban-ts-comment": 0, "@typescript-eslint/no-shadow": "error", "@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], "@typescript-eslint/lines-between-class-members": ["error", { "exceptAfterOverload": true }], "@typescript-eslint/naming-convention": [ "error", { "selector": "default", "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"], "leadingUnderscore": "allow" }, { "selector": "variable", "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"], "leadingUnderscore": "allow" }, { "selector": "typeLike", "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"], "leadingUnderscore": "allow" }, { "selector": "enumMember", "format": ["camelCase", "UPPER_CASE", "PascalCase", "snake_case"], "leadingUnderscore": "allow" }, { "selector": "objectLiteralProperty", "format": [], "leadingUnderscore": "allow" } ], "import/no-named-default": 0, "import/prefer-default-export": "off", "import/no-dynamic-require": "off", "import/no-duplicates": "off", "import/no-unresolved": "error", "import/no-cycle": "off", "import/extensions": [ "error", "ignorePackages", { "js": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "import/no-extraneous-dependencies": ["error", { "devDependencies": true }], "import/order": [ "error", { "newlines-between": "always-and-inside-groups", "groups": [["builtin", "external"], ["internal", "sibling"], "type"] } ], "prettier/prettier": [ "error", { "endOfLine": "auto" } ], "comma-dangle": "off", "class-methods-use-this": "off", "func-names": "off", "function-paren-newline": "off", "global-require": "off", "implicit-arrow-linebreak": 0, "no-use-before-define": "off", "no-inner-declarations": "off", "no-console": ["warn", { "allow": ["error", "info"] }], "consistent-return": "off", "no-alert": "error", "no-process-exit": "error", "no-shadow": "error", "no-param-reassign": [ "error", { "props": true, "ignorePropertyModificationsFor": ["accamulator", "request"] } ], "object-shorthand": "off", "quotes": ["error", "double"] }, "globals": { "window": false, "FormData": false, "Blob": true, "document": false } }