12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- {
- "extends": ["sonarqube", "./.eslintrc-typescript"],
- "plugins": ["header", "typescript-sort-keys", "eslint-plugin-local-rules"],
- "root": true,
- "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-spinner": "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-2024 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"
- }
- }
|