{ "extends": ["sonarqube", "./.eslintrc-typescript"], "plugins": ["header", "typescript-sort-keys", "eslint-plugin-local-rules"], "rules": { // Custom SonarCloud config that differs from eslint-config-sonarqube "camelcase": "off", "react/jsx-sort-props": "error", "react/jsx-pascal-case": [2, { "allowNamespace": true }], "react/jsx-no-constructed-context-values": "error", "react/jsx-uses-react": "off", "react/no-unstable-nested-components": ["error", { "allowAsProps": true }], "react/react-in-jsx-scope": "off", "testing-library/no-node-access": ["error", { "allowContainerFirstChild": true }], "no-implicit-coercion": [2, { "boolean": true, "number": true, "string": true }], "jest/no-large-snapshots": ["warn", { "maxSize": 200 }], "import/no-default-export": "warn", // Local rules "local-rules/use-componentqualifier-enum": "warn", "local-rules/use-metrickey-enum": "warn", "local-rules/use-metrictype-enum": "warn", "local-rules/use-visibility-enum": "warn", "local-rules/convert-class-to-function-component": "warn", "local-rules/no-conditional-rendering-of-deferredspinner": "warn", "local-rules/use-jest-mocked": "warn", // New rules added after updating eslint packages to more recent versions than eslint-config-sonarqube "jest/prefer-mock-promise-shorthand": "error", "header/header": [ "error", "block", [ "", " * SonarQube", " * Copyright (C) 2009-2023 SonarSource SA", " * mailto:info AT sonarsource DOT com", " *", " * This program is free software; you can redistribute it and/or", " * modify it under the terms of the GNU Lesser General Public", " * License as published by the Free Software Foundation; either", " * version 3 of the License, or (at your option) any later version.", " *", " * This program is distributed in the hope that it will be useful,", " * but WITHOUT ANY WARRANTY; without even the implied warranty of", " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU", " * Lesser General Public License for more details.", " *", " * You should have received a copy of the GNU Lesser General Public License", " * along with this program; if not, write to the Free Software Foundation,", " * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.", " " ], 1 ], "typescript-sort-keys/interface": "error", "promise/catch-or-return": ["warn", { "allowThen": true, "allowFinally": true }] }, "overrides": [ { "files": ["*-stories.tsx"], "rules": { "react/function-component-definition": "off" } }, { "files": ["*-test.tsx"], "rules": { "react/jsx-no-constructed-context-values": "off" } } ], "settings": { "testing-library/utils-module": "~helpers/testUtils" } }