{ "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "react-hooks", "simple-import-sort"], "extends": [ "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ], "parserOptions": { "ecmaVersion": 2020, "sourceType": "module", "ecmaFeatures": { "jsx": true } }, "rules": { "curly": "error", "no-extra-boolean-cast": "error", "@typescript-eslint/no-non-null-assertion": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/ban-ts-comment": "warn", "@typescript-eslint/ban-types": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-object-literal-type-assertion": "off", "@typescript-eslint/no-unused-vars": [ "warn", { "ignoreRestSiblings": true } ], "cypress/no-unnecessary-waiting": "off", "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn", "react/display-name": "warn", "react/prop-types": "off", "no-console": ["error"], "simple-import-sort/imports": [ "error", { "groups": [ // Side effect imports. ["^\\u0000"], // Packages. `react` related packages come first. ["^react", "^@?\\w"], // Parent imports. Put `..` last. ["^\\.\\.(?!/?$)", "^\\.\\./?$"], // Other relative imports. Put same-folder imports and `.` last. ["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"] ] } ], "simple-import-sort/exports": "error" }, "overrides": [ { "files": ["*.test.ts", "*.test.tsx"], "rules": { // Allow testing runtime errors to suppress TS errors "@typescript-eslint/ban-ts-comment": "off" } } ], "settings": { "react": { "pragma": "React", "version": "detect" } } }