forked from TriPSs/nestjs-query
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.eslintrc.json
106 lines (106 loc) · 3.25 KB
/
.eslintrc.json
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
{
"root": true,
"ignorePatterns": ["**/*"],
"plugins": ["@nx", "simple-import-sort"],
"extends": [
"airbnb-typescript/base",
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:@typescript-eslint/recommended-requiring-type-checking",
"plugin:jest/recommended",
"plugin:jest/style",
"plugin:import/errors",
"plugin:import/warnings",
"plugin:import/typescript",
"plugin:prettier/recommended"
],
"rules": {
"import/no-unresolved": "off"
},
"overrides": [
{
"files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
"rules": {
"@nx/enforce-module-boundaries": [
"error",
{
"enforceBuildableLibDependency": true,
"allow": [],
"depConstraints": [
{
"sourceTag": "*",
"onlyDependOnLibsWithTags": ["*"]
}
]
}
],
"semi": ["warn", "never"]
}
},
{
"files": ["*.ts", "*.tsx"],
"extends": ["plugin:@nx/typescript"],
"rules": {
// airbnb default is 1
"max-classes-per-file": ["error", 5],
// never allow default export
"import/prefer-default-export": "off",
// never allow default export
"import/no-default-export": "error",
// added by airbnb not-practical for entity-relation definitions
"import/no-cycle": "off",
// needed so we can use class scoped generics in methods.
"class-methods-use-this": "off",
// airbnb default this doesn't work when using parameter decorators.
"@typescript-eslint/no-useless-constructor": "off",
// override airbnb to allow class interface merging
"@typescript-eslint/no-redeclare": [
"error",
{
"ignoreDeclarationMerge": true
}
],
"@typescript-eslint/no-unsafe-assignment": "off",
"simple-import-sort/imports": [
"warn",
{
"groups": [
// Packages. `react` related packages come first.
["^react", "^@?\\w"],
// "type" imports.
["^.*\\u0000$"],
// Absolute imports and other imports such as Vue-style `@/foo`.
// Anything not matched in another group.
["^"],
// Relative imports.
// Anything that starts with a dot.
["^\\."]
]
}
],
"simple-import-sort/exports": "warn"
}
},
{
"files": ["*.js", "*.jsx"],
"extends": ["plugin:@nx/javascript"],
"rules": {}
},
{
"files": ["*.spec.ts", "*/__fixtures__/*.ts"],
"extends": ["plugin:@nx/typescript"],
"rules": {
"max-classes-per-file": ["off"],
"@typescript-eslint/no-unsafe-assignment": "off",
"@typescript-eslint/no-unsafe-argument": "off",
"@typescript-eslint/no-unsafe-member-access": "off",
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-explicit-any": "off",
"import/no-extraneous-dependencies": "off",
"jest/expect-expect": "off",
"@nx/enforce-module-boundaries": ["off"]
}
}
]
}