Skip to content
Snippets Groups Projects
.eslintrc 3.95 KiB
Newer Older
  • Learn to ignore specific revisions
  •   "rules": {
        "strict": [2, "never"],
        "no-undef": 2,
        "no-var": 1,
    
          "error",
          {
            "vars": "all",
            "args": "none",
            "varsIgnorePattern": "^_.+",
            "ignoreRestSiblings": true
          }
    
        "no-empty": [1, { "allowEmptyCatch": true }],
        "curly": [1, "all"],
        "eqeqeq": [1, "smart"],
        "import/no-commonjs": 1,
    
        "import/order": [
          "error",
          {
            "pathGroups": [
              {
                "pattern": "react",
                "group": "builtin",
                "position": "before"
              },
              {
                "pattern": "metabase/**",
                "group": "internal"
              },
              {
                "pattern": "metabase/**/components",
                "group": "internal",
                "position": "before"
              },
              {
                "pattern": "__**",
                "group": "internal",
                "position": "before"
              },
              {
                "pattern": "metabase-lib/**",
                "group": "internal",
                "position": "after"
              }
            ],
            "groups": [
              "builtin",
              "external",
              "internal",
              "parent",
              "sibling",
              "index",
              "object"
            ]
          }
        ],
    
        "no-console": 0,
        "react/no-is-mounted": 2,
        "react/prefer-es6-class": 2,
        "react/display-name": 1,
    
        "react/no-did-mount-set-state": 0,
        "react/no-did-update-set-state": 0,
        "react/no-find-dom-node": 0,
    
        "react/no-children-prop": 2,
    
        "react/no-unescaped-entities": 2,
    
        "react/jsx-no-target-blank": 2,
    
        "react/jsx-key": 2,
    
        "react/forbid-component-props": [2, { "forbid": ["w", "h"] }],
    
        "react-hooks/exhaustive-deps": [
          "warn",
    
          { "additionalHooks": "(useSyncedQueryString|useSafeAsyncFunction)" }
    
        "prefer-const": [1, { "destructuring": "all" }],
    
        "no-useless-escape": 0,
    
        "no-only-tests/no-only-tests": "error",
        "complexity": ["error", { "max": 54 }]
    
      },
      "globals": {
    
        "cy": true,
    
        "Cypress": true
    
      },
      "env": {
        "browser": true,
        "es6": true,
        "commonjs": true,
    
        "jest": true,
        "jest/globals": true
    
      },
      "parser": "babel-eslint",
    
      "plugins": ["react", "no-only-tests"],
    
      "extends": [
        "eslint:recommended",
        "plugin:react/recommended",
    
        "plugin:react-hooks/recommended",
    
        "plugin:import/errors",
        "plugin:import/warnings"
      ],
      "settings": {
    
        "import/internal-regex": "^metabase/|^metabase-lib/",
    
        "import/resolver": "webpack",
    
        "import/ignore": ["\\.css$"],
        "react": {
          "version": "detect"
        }
    
      },
      "parserOptions": {
        "ecmaFeatures": {
          "legacyDecorators": true
        }
    
      },
      "overrides": [
        {
          "extends": ["plugin:@typescript-eslint/recommended"],
          "files": ["*.ts", "*.tsx"],
          "parser": "@typescript-eslint/parser",
          "plugins": ["@typescript-eslint"],
          "rules": {
    
            "prefer-rest-params": "off",
    
            "@typescript-eslint/explicit-module-boundary-types": "off",
            "@typescript-eslint/no-inferrable-types": "off",
            "@typescript-eslint/no-explicit-any": "off",
    
            "@typescript-eslint/no-this-alias": "off",
    
            "no-unused-vars": "off",
            "@typescript-eslint/no-unused-vars": [
              "error",
              {
                "vars": "all",
                "args": "none",
                "varsIgnorePattern": "^_.+",
                "ignoreRestSiblings": true,
                "destructuredArrayIgnorePattern": "^_"
              }
            ]
    
          "extends": [
            "plugin:jest/recommended",
            "plugin:jest-dom/recommended",
            "plugin:testing-library/react"
          ],
          "plugins": ["jest", "jest-dom", "testing-library"],
    
          "files": [
            "*.unit.spec.ts",
            "*.unit.spec.tsx",
            "*.unit.spec.js",
            "*.unit.spec.jsx"
          ],
          "rules": {
            "jest/valid-title": ["error", { "ignoreTypeOfDescribeName": true }]
          }