{ "root": true, "env": { "browser": true, "es2021": true, "jest": true }, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, "ecmaVersion": "latest", "sourceType": "module" }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ], "plugins": [ "jest", "cypress", "import", "@typescript-eslint", "prettier" ], "overrides": [ { "files": ["test/**"], "plugins": ["jest"], "extends": ["plugin:jest/recommended", "plugin:jest/style"], "rules": { "jest/prefer-expect-assertions": "off" } }, { "files": ["*.ts", "*.tsx"], "plugins": [ "@typescript-eslint" ], "rules": { "no-var": "error", "no-dupe-class-members": "off", "no-undef": "off", "no-redeclare": "off", "@typescript-eslint/no-redeclare": ["warn"], "@typescript-eslint/consistent-type-assertions": ["warn"], "no-array-constructor": "off", "@typescript-eslint/no-array-constructor": ["warn"], "no-use-before-define": "off", "@typescript-eslint/no-use-before-define": [ "warn", { "functions": false, "classes": false, "variables": false, "typedefs": false } ], "no-unused-expressions": "off", "@typescript-eslint/no-unused-expressions": [ "error", { "allowShortCircuit": true, "allowTernary": true, "allowTaggedTemplates": true } ], "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": [ "warn", { "args": "none", "ignoreRestSiblings": true } ], "no-useless-constructor": "off", "@typescript-eslint/no-useless-constructor": ["warn"] } }, { "files": ["cypress/e2e/**/*.cy.ts"], "extends": ["plugin:cypress/recommended"], "rules": { "@typescript-eslint/no-unused-expressions": "off", "@typescript-eslint/no-empty-function": "off", "spaced-comment": "off", "camelcase": "off" } } ], "rules": { "no-undef-init": "warn", "no-useless-return": "warn", "no-duplicate-imports": "warn", "import/first": "warn", "import/no-anonymous-default-export": [ "warn", { "allowArray": true, "allowLiteral": true, "allowObject": true } ], "prefer-const": "warn", "prefer-spread": "warn", "camelcase": "error", "spaced-comment": "error", "dot-notation": "warn", "quotes": ["error", "single"], "prettier/prettier": [ "error", { "printWidth": 120, "tabWidth": 2, "useTabs": false, "semi": true, "singleQuote": true, "endOfLine": "auto", "jsxSingleQuote": false, "bracketSpacing": true, "bracketSameLine": false, "arrowParens": "always" } ] }, "settings": { "import/resolver": { "typescript": {} } } }