1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
{
"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-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"
}
}
|