-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy patheslint.config.js
More file actions
118 lines (113 loc) · 3.17 KB
/
Copy patheslint.config.js
File metadata and controls
118 lines (113 loc) · 3.17 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
// @ts-check
const tseslint = require("typescript-eslint");
const angular = require("angular-eslint");
// Rules carried over from the original .eslintrc.json
const sharedTsRules = {
// angular-eslint rules not in the original config
"@angular-eslint/prefer-on-push-component-change-detection": "off",
"@angular-eslint/prefer-inject": "off",
"@angular-eslint/prefer-standalone": "off",
// explicit typescript-eslint rules from .eslintrc.json
"@typescript-eslint/array-type": ["error", { default: "array" }],
"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": "off",
"@typescript-eslint/dot-notation": "off",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/prefer-for-of": "off",
// explicit eslint core rules from .eslintrc.json
"arrow-parens": ["off", "always"],
"comma-dangle": "error",
"no-underscore-dangle": "off",
"id-blacklist": "error",
"no-bitwise": "off",
"no-duplicate-case": "error",
"no-duplicate-imports": "error",
"no-extra-bind": "error",
"no-fallthrough": "off",
"no-new-func": "error",
"no-redeclare": "error",
"no-return-await": "error",
"no-sequences": "error",
"no-sparse-arrays": "error",
"no-template-curly-in-string": "error",
"prefer-object-spread": "off",
"space-in-parens": ["error", "never"],
};
const subProjectRules = {
"@angular-eslint/component-selector": [
"error",
{ type: "element", prefix: "app", style: "kebab-case" },
],
"@angular-eslint/directive-selector": [
"error",
{ type: "attribute", prefix: "app", style: "camelCase" },
],
};
module.exports = tseslint.config(
// ── main app (src/) ──
{
files: ["src/**/*.ts"],
extends: [
tseslint.configs.base,
...angular.configs.tsRecommended,
],
processor: angular.processInlineTemplates,
languageOptions: {
parserOptions: {
project: ["tsconfig.json"],
},
},
rules: { ...sharedTsRules },
},
{
files: ["src/**/*.html"],
extends: [...angular.configs.templateRecommended],
rules: {},
},
// ── app-lob ──
{
files: ["projects/app-lob/**/*.ts"],
extends: [
tseslint.configs.base,
...angular.configs.tsRecommended,
],
processor: angular.processInlineTemplates,
languageOptions: {
parserOptions: {
project: [
"projects/app-lob/tsconfig.app.json",
"projects/app-lob/tsconfig.spec.json",
],
},
},
rules: { ...sharedTsRules, ...subProjectRules },
},
{
files: ["projects/app-lob/**/*.html"],
extends: [...angular.configs.templateRecommended],
rules: {},
},
// ── app-crm ──
{
files: ["projects/app-crm/**/*.ts"],
extends: [
tseslint.configs.base,
...angular.configs.tsRecommended,
],
processor: angular.processInlineTemplates,
languageOptions: {
parserOptions: {
project: [
"projects/app-crm/tsconfig.app.json",
"projects/app-crm/tsconfig.spec.json",
],
},
},
rules: { ...sharedTsRules, ...subProjectRules },
},
{
files: ["projects/app-crm/**/*.html"],
extends: [...angular.configs.templateRecommended],
rules: {},
}
);