{ "extends": [ "plugin:mattermost/react", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:react-hooks/recommended" ], "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "mattermost" ], "settings": { "react": { "pragma": "React", "version": "17.0" } }, "env": { "jest": true }, "globals": { "__DEV__": true }, "rules": { "eol-last": ["error", "always"], "global-require": 0, "no-undefined": 0, "no-shadow": "off", "react/display-name": [2, { "ignoreTranspilerName": false }], "react/jsx-filename-extension": 0, "camelcase": [ 0, { "properties": "never" } ], "@typescript-eslint/ban-types": 0, "@typescript-eslint/no-non-null-assertion": 0, "@typescript-eslint/no-unused-vars": [ 2, { "vars": "all", "args": "after-used" } ], "@typescript-eslint/no-shadow": ["error"], "@typescript-eslint/no-explicit-any": "warn", "no-use-before-define": "off", "@typescript-eslint/no-use-before-define": 0, "@typescript-eslint/no-var-requires": 0, "@typescript-eslint/explicit-function-return-type": 0, "@typescript-eslint/explicit-module-boundary-types": "off", "no-underscore-dangle": "off", "indent": [2, 4, {"SwitchCase": 1}], "key-spacing": [2, { "singleLine": { "beforeColon": false, "afterColon": true }}] }, "overrides": [ { "files": ["*.test.js", "*.test.jsx"], "env": { "jest": true } }, { "files": ["detox/e2e/**"], "globals": { "by": true, "detox": true, "device": true, "element": true, "waitFor": true }, "rules": { "func-names": 0, "import/no-unresolved": 0, "max-nested-callbacks": 0, "no-process-env": 0, "no-unused-expressions": 0 } } ] }