RocketChat/Rocket.Chat

View on GitHub
packages/livechat/.eslintrc.json

Summary

Maintainability
Test Coverage
{
    "extends": ["@rocket.chat/eslint-config", "prettier"],
    "plugins": ["react", "react-hooks", "prettier"],
    "env": {
        "jest": true
    },
    "rules": {
        "import/order": ["error", {
            "newlines-between": "always",
            "groups": ["builtin", "external", "internal", ["parent", "sibling", "index"]],
            "alphabetize": {
                "order": "asc"
            }
        }],
        "jsx-quotes": ["error", "prefer-single"],
        "react/display-name": ["warn", {
            "ignoreTranspilerName": false
        }],
        "react/jsx-fragments": ["error", "syntax"],
        "react/jsx-no-bind": ["warn", {
            "ignoreRefs": true,
            "allowFunctions": true,
            "allowArrowFunctions": true
        }],
        "react/jsx-no-comment-textnodes": "error",
        "react/jsx-no-duplicate-props": "error",
        "react/jsx-no-target-blank": "error",
        "react/jsx-no-undef": "error",
        "react/jsx-tag-spacing": ["error", {
            "beforeSelfClosing": "always"
        }],
        "react/jsx-uses-react": "error",
        "react/jsx-uses-vars": "error",
        "react/no-danger": "warn",
        "react/no-deprecated": "error",
        "react/no-did-mount-set-state": "error",
        "react/no-did-update-set-state": "error",
        "react/no-find-dom-node": "error",
        "react/no-is-mounted": "error",
        "react/no-string-refs": "error",
        "react/prefer-es6-class": "error",
        "react/prefer-stateless-function": "warn",
        "react/require-render-return": "error",
        "react/self-closing-comp": "error",
        "react-hooks/rules-of-hooks": "error",
        "react-hooks/exhaustive-deps": "warn",
        "no-sequences": "off",
        "no-extra-parens": "off"
    },
    "settings": {
        "import/resolver": {
            "node": {
              "extensions": [
                ".js",
                ".ts",
                ".tsx"
              ]
            }
          },
        "react": {
                "pragma": "h",
                "pragmaFrag": "Fragment",
                "version": "detect"
        }
    },
    "overrides": [
        {
            "files": ["*.ts", "*.tsx"],
            "rules": {
                "@typescript-eslint/naming-convention": [
                    "error",
                    { "selector": "variableLike", "format": ["camelCase"], "leadingUnderscore": "allow" },
                    {
                        "selector": ["variable"],
                        "format": ["camelCase", "UPPER_CASE", "PascalCase"],
                        "leadingUnderscore": "allowSingleOrDouble"
                    },
                    {
                        "selector": ["function"],
                        "format": ["camelCase", "PascalCase"],
                        "leadingUnderscore": "allowSingleOrDouble"
                    },
                    {
                        "selector": "parameter",
                        "format": ["camelCase"],
                        "modifiers": ["unused"],
                        "leadingUnderscore": "require"
                    }
                ]
            }
        }
    ]
}