{ "env": { "browser": true, "shared-node-browser": true, "node": true, "es2021": true }, "extends": [ "airbnb", "airbnb-typescript", "airbnb/hooks", "prettier", "plugin:prettier/recommended", "plugin:import/recommended", "plugin:import/typescript", "plugin:react/recommended", "plugin:react/jsx-runtime", "plugin:react-hooks/recommended", "plugin:promise/recommended", "plugin:unicorn/recommended", "plugin:sonarjs/recommended" // "plugin:@typescript-eslint/recommended", // "plugin:@typescript-eslint/recommended-requiring-type-checking" ], "plugins": [ "@typescript-eslint", "react", "prettier", "import", "sonarjs", "promise", "unicorn" ], "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaVersion": 2021, "sourceType": "module", "project": "./tsconfig.json", "ecmaFeatures": { "jsx": true } }, "rules": { // Disabled "no-console": "off", "no-continue": "off", "no-plusplus": "off", "no-case-declarations": "off", "no-prototype-builtins": "off", "no-restricted-syntax": "off", "no-param-reassign": "off", "import/prefer-default-export": "off", "import/no-default-export": "off", "import/no-extraneous-dependencies": "off", "import/named": "off", "import/no-named-as-default": "off", "react/destructuring-assignment": "off", "react/require-default-props": "off", "react/jsx-props-no-spreading": "off", "react/jsx-filename-extension": "off", "react/display-name": "off", "react/react-in-jsx-scope": "off", "react/jsx-no-useless-fragment": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/no-unsafe-member-access": "off", "@typescript-eslint/no-unsafe-call": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-empty-function": "off", "@typescript-eslint/no-empty-interface": "off", "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/no-unused-expressions": "off", "unicorn/no-null": "off", "unicorn/prevent-abbreviations": "off", "unicorn/filename-case": "off", "unicorn/no-useless-undefined": "off", "unicorn/prefer-node-protocol": "off", "sonarjs/cognitive-complexity": "off", "jsx-a11y/no-static-element-interactions": "off", "jsx-a11y/click-events-have-key-events": "off", "jsx-a11y/interactive-supports-focus": "off", "jsx-a11y/control-has-associated-label": "off", "jsx-a11y/media-has-caption": "off", "jsx-a11y/mouse-events-have-key-events": "off", "jsx-a11y/anchor-is-valid": "off", //Modified "require-atomic-updates": "warn", "curly": [ "warn", "multi-line", "consistent" ], "no-use-before-define": [ "error", { "functions": false, "classes": true, "variables": true } ], "sort-imports": [ "error", { "ignoreDeclarationSort": true } ], "import/no-unresolved": [ "error", { "commonjs": true, "amd": true } ], "import/export": "error", "import/order": [ "error", { "alphabetize": { "order": "asc", "caseInsensitive": true }, "groups": [ "builtin", "external", "internal", "parent", "sibling", "index", "object" ], "newlines-between": "never", "pathGroups": [ { "pattern": "react", "group": "builtin", "position": "before" } ], "pathGroupsExcludedImportTypes": [ "builtin" ] } ], "react/no-unstable-nested-components": [ "warn", { "allowAsProps": true } ], "react/function-component-definition": [ "warn", { "namedComponents": "arrow-function", "unnamedComponents": "arrow-function" } ], "react-hooks/rules-of-hooks": "error", "react-hooks/exhaustive-deps": "warn", "@typescript-eslint/no-duplicate-imports": [ "error" ], "@typescript-eslint/no-use-before-define": [ "error", { "functions": false, "classes": true, "variables": true, "typedefs": true } ], "sonarjs/max-switch-cases": [ "warn", 50 ] }, "settings": { "react": { "version": "detect" }, "import/extensions": [".js", ".jsx", ".ts", ".tsx"], "import/parsers": { "@typescript-eslint/parser": [".js", ".jsx", ".ts", ".tsx"] }, "import/resolver": { "node": { "extensions": [".js", ".jsx", ".ts", ".tsx", ".json"], "paths": ["src"] }, "typescript": { "alwaysTryTypes": true, "project": "./tsconfig.json" } } }, "overrides": [ { "files": ["src"], "parserOptions": { "project": "./tsconfig.json" } } ] }