-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy patheslint.config.js
81 lines (80 loc) · 2.7 KB
/
eslint.config.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
70
71
72
73
74
75
76
77
78
79
80
81
const nx = require("@nx/eslint-plugin");
const perfectionist = require("eslint-plugin-perfectionist");
const eslintPluginPrettierRecommended = require("eslint-plugin-prettier/recommended");
const eslintPluginUnicorn = require("eslint-plugin-unicorn");
module.exports = [
...nx.configs["flat/base"],
...nx.configs["flat/typescript"],
...nx.configs["flat/javascript"],
perfectionist.configs["recommended-natural"],
eslintPluginUnicorn.configs["flat/recommended"],
{
ignores: ["**/dist"]
},
{
files: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"],
rules: {
"@nx/enforce-module-boundaries": [
"error",
{
allow: [String.raw`^.*/eslint(\.base)?\.config\.[cm]?js$`],
depConstraints: [
{
onlyDependOnLibsWithTags: ["*"],
sourceTag: "*"
}
],
enforceBuildableLibDependency: true
}
]
}
},
{
files: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx"],
// Override or add rules here
rules: {
"perfectionist/sort-classes": [
"error",
{
groups: [
"index-signature",
"static-property",
"property",
"private-property",
"constructor",
"static-method",
["get-method", "set-method"],
"method",
"private-method"
],
order: "asc",
type: "natural"
}
],
"prettier/prettier": "error",
"unicorn/no-abusive-eslint-disable": "off",
"unicorn/no-array-for-each": "off",
"unicorn/no-for-loop": "warn",
"unicorn/no-static-only-class": "off",
"unicorn/prefer-top-level-await": "warn",
"unicorn/prevent-abbreviations": "warn"
}
},
{
files: ["**/*.spec.ts", "**/*.spec.tsx", "**/*.spec.js", "**/*.spec.jsx"],
rules: {
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"sonarjs/no-duplicate-string": "off",
"unicorn/prevent-abbreviations": "off"
}
},
{
files: ["**/*.config.js"],
rules: {
"unicorn/prefer-module": "off"
}
},
eslintPluginPrettierRecommended
];