.eslintrc.json
{ "settings": { "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx"] } } }, "overrides": [ { "files": ["**/*.d.ts"], "parser": "@typescript-eslint/parser", "plugins": ["@typescript-eslint", "plugin:@typescript-eslint/recommended"] } ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 12, "parser": "@babel/eslint-parser", "requireConfigFile": false, "sourceType": "module" }, "env": { "browser": true, "es6": true, "node": true, "jest": true }, "extends": [ "airbnb", "prettier", "plugin:cypress/recommended", "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:storybook/recommended" ], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, "plugins": ["prettier", "cypress", "simple-import-sort"], "rules": { "simple-import-sort/imports": "warn", "simple-import-sort/exports": "warn", "array-callback-return": "off", "consistent-return": "off", "implicit-arrow-linebreak": "off", "import-extensions": "off", "import/extensions": [ "error", "ignorePackages", { "js": "never", "jsx": "never", "ts": "never", "tsx": "never" } ], "import/imports-first": "error", "import/named": "error", "import/newline-after-import": "error", "import/no-duplicates": "error", "import/no-extraneous-dependencies": "off", "import/no-unresolved": "off", "import/prefer-default-export": "off", "indent": "off", "jsx-a11y/alt-text": "off", "jsx-a11y/click-events-have-key-events": "off", "jsx-a11y/label-has-associated-control": "off", "jsx-a11y/no-static-element-interactions": "off", "jsx-quotes": ["error", "prefer-single"], "key-spacing": [ "error", { "mode": "strict", "beforeColon": false, "afterColon": true } ], "keyword-spacing": [ "error", { "before": true, "after": true, "overrides": {} } ], "linebreak-style": "off", "max-len": "off", "no-control-regex": "off", "no-extra-semi": "error", "no-param-reassign": "off", "no-trailing-spaces": [ "error", { "skipBlankLines": false } ], "no-undef": "off", "no-underscore-dangle": "off", "no-useless-escape": "off", "no-restricted-globals": "off", "object-curly-spacing": ["error", "never"], "prefer-arrow-callback": ["error", {"allowNamedFunctions": true}], "func-style": ["error", "expression", {"allowArrowFunctions": true}], "prefer-destructuring": [ "error", { "object": true, "array": false } ], "quotes": [ "error", "single", { "allowTemplateLiterals": true } ], "radix": "off", "react/button-has-type": "off", "react/destructuring-assignment": "off", "react/display-name": [ "warn", { "ignoreTranspilerName": true } ], "react/jsx-closing-bracket-location": [0, "after-props"], "react/jsx-closing-tag-location": "off", "react/jsx-filename-extension": "off", "react/jsx-props-no-spreading": "off", "react/jsx-tag-spacing": [ "error", { "afterOpening": "never", "beforeSelfClosing": "always", "closingSlash": "never" } ], "react/jsx-wrap-multilines": "off", "react/prop-types": "off", "react/require-default-props": "off", "semi": ["error", "never"], "semi-spacing": [ "error", { "before": false, "after": true } ], "semi-style": ["error", "last"], "camelcase": "off", "no-use-before-define": "off", "@typescript-eslint/no-use-before-define": ["error"], "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off", "@typescript-eslint/no-unused-vars": "error", "no-unused-vars": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-inferrable-types": "off" }}