{ "env": { "browser": true, "es2021": true, "jest/globals": true }, "settings": { "react": { "version": "detect" } }, "extends": [ "eslint:recommended", "plugin:react/recommended", "plugin:@typescript-eslint/recommended", "prettier", "prettier/react", "plugin:import/errors", "plugin:import/warnings", "plugin:jest/recommended", "plugin:react-hooks/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "tsx": true }, "ecmaVersion": 12, "sourceType": "module" }, "plugins": ["react", "@typescript-eslint", "prettier", "jest"], "rules": { "react/jsx-filename-extension": [ 1, { "extensions": [".ts", ".tsx"] } ], "react-hooks/exhaustive-deps": [ "warn", { "additionalHooks": "(useTypedQuery|useTypedParams)" } ], "jsx-a11y/label-has-associated-control": 0, "eqeqeq": "error", "import/extensions": 0, "react/prop-types": 0, "no-underscore-dangle": 0, "import/imports-first": ["error", "absolute-first"], "import/prefer-default-export": 0, "import/no-unresolved": 0, "import/newline-after-import": "error", "react/jsx-props-no-spreading": 0, "class-methods-use-this": 0, "react/prefer-stateless-function": 0, "react/jsx-fragments": 0, "react/no-array-index-key": 0, "react/destructuring-assignment": 0, "no-console": [ "warn", { "allow": ["warn", "error"] } ], "semi": "warn", "quotes": ["warn", "single"], "array-callback-return": [ "warn", { "allowImplicit": true, "checkForEach": true } ], "no-trailing-spaces": "warn", "default-case": "warn", "default-param-last": "warn", "no-alert": "warn", "no-constructor-return": "warn", "no-else-return": "warn", "no-empty-function": "warn", "no-multi-spaces": "warn", "no-multi-str": "warn", "no-new": "warn", "no-param-reassign": "warn", "no-sequences": "warn", "no-useless-concat": "warn", "prefer-promise-reject-errors": "warn", "require-await": "warn", "wrap-iife": ["warn", "inside"], "yoda": "warn", "no-shadow": "off", "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-shadow": "warn", "@typescript-eslint/no-namespace": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-unused-vars": ["error"], "array-bracket-spacing": ["warn", "never"], "block-spacing": ["warn", "never"], "brace-style": ["warn", "1tbs", {"allowSingleLine": true}], "capitalized-comments": ["warn"], "comma-dangle": ["warn", "only-multiline"], "comma-spacing": ["warn", {"before": false, "after": true}], "computed-property-spacing": ["warn", "never"], "eol-last": ["warn", "always"], "func-call-spacing": ["warn", "never"], "keyword-spacing": ["warn", {"before": true}], "line-comment-position": ["warn", {"position": "above"}], "lines-between-class-members": ["warn", "always"], "max-len": [ "warn", { "code": 120, "ignoreComments": true, "ignoreUrls": true, "ignoreStrings": true, "ignoreTemplateLiterals": true, "ignoreRegExpLiterals": true } ], "multiline-comment-style": ["warn", "starred-block"], "new-cap": "warn", "new-parens": "warn", "newline-per-chained-call": ["warn", {"ignoreChainWithDepth": 3}], "no-bitwise": "warn", "no-inline-comments": "warn", "no-lonely-if": "warn", "no-multi-assign": "warn", "no-multiple-empty-lines": ["warn", {"max": 1}], "no-nested-ternary": "warn", "no-plusplus": "warn", "object-curly-spacing": ["warn", "never"], "object-property-newline": ["warn", {"allowAllPropertiesOnSameLine": true}], "key-spacing": ["warn", {"beforeColon": false, "afterColon": true}], "space-before-blocks": "warn", "space-before-function-paren": [ "warn", { "anonymous": "always", "named": "never", "asyncArrow": "always" } ], "space-in-parens": ["warn", "never"], "space-infix-ops": "warn", "arrow-parens": ["warn", "as-needed"], "arrow-spacing": "warn", "no-duplicate-imports": "warn", "no-useless-computed-key": "warn", "no-useless-constructor": "warn", "no-var": "warn", "prefer-const": "warn", "prefer-rest-params": "warn", "prefer-template": "warn", "template-curly-spacing": "warn" } }