{ "extends": [ "plugin:mattermost/react", "plugin:cypress/recommended" ], "plugins": [ "@babel/eslint-plugin", "mattermost", "import", "no-only-tests", "@typescript-eslint", "cypress" ], "parser": "@typescript-eslint/parser", "env": { "cypress/globals": true }, "settings": { "react": { "pragma": "React", "version": "detect" } }, "rules": { "header/header": [ 2, "line", " Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n See LICENSE.txt for license information.", 2 ], "cypress/assertion-before-screenshot": "warn", "cypress/no-assigning-return-values": "error", "cypress/no-force": "warn", "cypress/no-async-tests": "error", "cypress/no-pause": "error", "cypress/no-unnecessary-waiting": 0, "cypress/unsafe-to-chain-command": 0, "func-names": 0, "import/no-unresolved": 0, "max-nested-callbacks": 0, "no-unused-expressions": 0, "no-process-env": 0, "no-duplicate-imports": 0, "no-undefined": 0, "no-use-before-define": 0, "import/no-duplicates": 2, "mattermost/use-external-link": 2, "eol-last": ["error", "always"], "import/order": [ 0, { "newlines-between": "always-and-inside-groups", "groups": [ "builtin", "external", [ "internal", "parent" ], "sibling", "index" ] } ], "no-only-tests/no-only-tests": ["error", {"focus": ["only"]}], "max-lines": ["warn", {"max": 800, "skipBlankLines": true, "skipComments": true}] }, "overrides": [ { "files": ["**/*.ts"], "extends": [ "plugin:@typescript-eslint/recommended" ], "rules": { "camelcase": 0, "no-shadow": 0, "import/no-unresolved": 0, // ts handles this better "@typescript-eslint/naming-convention": [ 2, { "selector": "function", "format": ["camelCase", "PascalCase"] }, { "selector": "variable", "format": ["camelCase", "PascalCase", "UPPER_CASE"] }, { "selector": "parameter", "format": ["camelCase", "PascalCase"], "leadingUnderscore": "allow" }, { "selector": "typeLike", "format": ["PascalCase"] } ], "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-non-null-assertion": 0, "@typescript-eslint/no-unused-vars": [ 2, { "vars": "all", "args": "after-used" } ], "@typescript-eslint/no-var-requires": 0, "@typescript-eslint/no-empty-function": 0, "@typescript-eslint/prefer-interface": 0, "@typescript-eslint/explicit-function-return-type": 0, "@typescript-eslint/explicit-module-boundary-types": 0, "@typescript-eslint/indent": [ 2, 4, { "SwitchCase": 0 } ], "@typescript-eslint/no-use-before-define": [ 2, { "classes": false, "functions": false, "variables": false } ] } } ] }