-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy path.eslintrc.js
69 lines (69 loc) · 2.18 KB
/
.eslintrc.js
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
module.exports = {
extends: ['./.config/.eslintrc', 'plugin:@tanstack/eslint-plugin-query/recommended'],
plugins: ['simple-import-sort'],
ignorePatterns: ['**/snippets/*.js'],
rules: {
'no-redeclare': 'off', // we use typescript's 'no-redeclare' rule instead
'@typescript-eslint/no-redeclare': ['error'],
'no-restricted-syntax': [
'error',
{
selector: 'ExportDefaultDeclaration',
message: 'Prefer named exports',
},
],
['simple-import-sort/imports']: [
'error',
{
groups: [
// Node.js builtins.
// then `react` packages, grafana packages, scoped packages, non-scoped packages
// -- because of the absolute paths we use in the src folder, they might get caught in this check so have to be added explicitly to internal packages
// then test folder utils
[
'^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)',
'^react',
'^@tanstack',
'^@grafana',
'^grafana',
'^@?\\w',
'^test',
'^__mocks__',
'^datasource/__mocks__',
],
// Internal packages.
[
'types',
'^faro',
'^sessionStorage',
'^utils',
'^routing',
'^validation',
'^datasource',
'^contexts',
'^data',
'^hooks',
'^components',
'^page',
'^scenes',
],
// Parent imports.
// then other relative imports. Put same-folder imports and `.` last.
// then image imports
// then style imports
// then side effect imports
[
'^\\.\\.(?!/?$)',
'^\\.\\./?$',
'^\\./(?=.*/)(?!/?$)',
'^\\.(?!/?$)',
'^\\./?$',
'^img',
'^.styles$',
'^\\u0000',
],
],
},
],
},
};