{ "parser": "@typescript-eslint/parser", "reportUnusedDisableDirectives": false, "extends": [ "plugin:import/errors", "plugin:import/warnings", "plugin:prettier/recommended", "plugin:jsx-a11y/recommended" ], "env": { "jest": true }, "plugins": [ "@typescript-eslint", "react", "react-hooks", "import", "jsx-a11y" ], "rules": { "import/no-extraneous-dependencies": ["error", { "devDependencies": true }], "import/extensions": [ "error", "never", { "json": "always", "svg": "always", "mock": "always", "js": "always" } ], "import/no-unresolved": "off", "jsx-a11y/anchor-is-valid": [ "error", { "components": ["Link"], "specialLink": ["hrefLeft", "hrefRight"], "aspects": ["invalidHref", "preferButton"] } ], // next/link api incompatible with no-href aspect "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn" }, "settings": { "import/parser": "@typescript-eslint/parser", "import/resolver": { "node": { "extensions": [".js", ".ts", ".tsx"] } } }, "overrides": [ { "files": ["*.ts", "*.tsx"], "extends": [ "plugin:@typescript-eslint/recommended" ], "rules": { "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-unused-vars": [ "error", { "vars": "all", "args": "after-used", "ignoreRestSiblings": true, "argsIgnorePattern": "^_" } ], "@typescript-eslint/no-extra-semi": "off" // conflicts with prettier } } ] }