{ "env": { "browser": true, "es2021": true }, "ignorePatterns": ["dist", "**/*.js", "**/*.html"], "extends": [ "airbnb-base", "airbnb-typescript/base", "plugin:@typescript-eslint/recommended-requiring-type-checking" ], "settings": { "react": { "version": "detect" }, "import/resolver": { "typescript": {}, "node": { "extensions": [".ts", ".tsx"], "moduleDirectory": ["node_modules", "src/"] } } }, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": "latest", "sourceType": "module", "project": "./tsconfig.json" }, "plugins": ["react", "@typescript-eslint"], "overrides": [ { "files": ["src/**/*.ts", "src/**/*.tsx"] } ], "rules": { // Disable problematic rules "import/no-cycle": "off", "react/react-in-jsx-scope": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/indent": "warn", "@typescript-eslint/no-explicit-any": "warn", "@typescript-eslint/no-unsafe-assignment": "warn", "@typescript-eslint/no-unsafe-member-access": "warn", "@typescript-eslint/no-unsafe-argument": "warn", "object-curly-newline": "warn", "implicit-arrow-linebreak": "warn", "operator-linebreak": "warn", "import/extensions": [ "error", "ignorePackages", { "js": "never", "mjs": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "max-len": ["error", { "code": 100 }] } }