{ "extends": ["@grafana/eslint-config"], "root": true, "plugins": ["@emotion", "lodash", "jest", "import"], "settings": { "import/internal-regex": "^(app/)|(@grafana)", "import/external-module-folders": ["node_modules", ".yarn"] }, "rules": { "react/prop-types": "off", "@emotion/jsx-import": "error", "lodash/import-scope": [2, "member"], "jest/no-focused-tests": "error", "import/order": [ "error", { "groups": [["builtin", "external"], "internal", "parent", "sibling", "index"], "newlines-between": "always", "alphabetize": { "order": "asc" } } ], "no-restricted-imports": [ "warn", { "paths": [ { "name": "react-redux", "importNames": ["useDispatch", "useSelector"], "message": "Please import from app/types instead." } ] } ], // Use typescript's no-redeclare for compatibility with overrides "no-redeclare": "off", "@typescript-eslint/no-redeclare": ["error"] }, "overrides": [ { "files": ["packages/grafana-ui/src/components/uPlot/**/*.{ts,tsx}"], "rules": { "react-hooks/rules-of-hooks": "off", "react-hooks/exhaustive-deps": "off" } }, { "files": ["packages/grafana-ui/src/components/ThemeDemos/**/*.{ts,tsx}"], "rules": { "@emotion/jsx-import": "off", "react/jsx-uses-react": "off", "react/react-in-jsx-scope": "off" } }, { "files": ["public/dashboards/scripted*.js"], "rules": { "no-redeclare": "error", "@typescript-eslint/no-redeclare": "off" } } ] }