{ "extends": [ "./eslint/eslint-mattermost", "./eslint/eslint-react", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:react-hooks/recommended" ], "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint", "import" ], "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, "react-hooks/exhaustive-deps": 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 }}], "@typescript-eslint/member-delimiter-style": 2, "@typescript-eslint/no-unsafe-declaration-merging": "off", "import/order": [ 2, { "groups": ["builtin", "external", "parent", "sibling", "index", "type"], "newlines-between": "always", "pathGroups": [ { "pattern": "{@(@actions|@app|@assets|@calls|@client|@components|@constants|@context|@database|@helpers|@hooks|@init|@managers|@queries|@screens|@selectors|@share|@store|@telemetry|@typings|@test|@utils)/**,@(@constants|@i18n|@store|@websocket)}", "group": "external", "position": "after" }, { "pattern": "app/**", "group": "parent", "position": "before" } ], "alphabetize": { "order": "asc", "caseInsensitive": true }, "pathGroupsExcludedImportTypes": ["type"] } ] }, "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 } } ] }