lint-suite 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/lint-suite/src/README.md +135 -121
- package/packages/lint-suite/src/index.cjs +104 -55
- package/packages/lint-suite/src/index.cjs.map +3 -3
- package/packages/lint-suite/src/index.d.ts +2 -346
- package/packages/lint-suite/src/index.d.ts.map +1 -1
- package/packages/lint-suite/src/index.js +103 -54
- package/packages/lint-suite/src/index.js.map +3 -3
- package/packages/lint-suite/src/lib/angular-template.d.ts +2 -24
- package/packages/lint-suite/src/lib/angular-template.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/angular.d.ts +2 -6
- package/packages/lint-suite/src/lib/angular.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/base.d.ts +2 -2
- package/packages/lint-suite/src/lib/base.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/javascript.d.ts +2 -1
- package/packages/lint-suite/src/lib/javascript.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/jest.d.ts +2 -2
- package/packages/lint-suite/src/lib/jest.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/json.d.ts +2 -2
- package/packages/lint-suite/src/lib/json.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/rxjs.d.ts +2 -2
- package/packages/lint-suite/src/lib/rxjs.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/storybook.d.ts +2 -2
- package/packages/lint-suite/src/lib/storybook.d.ts.map +1 -1
- package/packages/lint-suite/src/lib/typescript.d.ts +2 -318
- package/packages/lint-suite/src/lib/typescript.d.ts.map +1 -1
- package/packages/lint-suite/src/package.json +1 -1
package/package.json
CHANGED
|
@@ -1,121 +1,135 @@
|
|
|
1
|
-
# Lint Suite
|
|
2
|
-
|
|
3
|
-
A comprehensive collection of ESLint Flat configurations for modern web applications.
|
|
4
|
-
|
|
5
|
-
## Features
|
|
6
|
-
|
|
7
|
-
- **TypeScript Linting**: Strict typing rules, consistent imports, and code organization
|
|
8
|
-
- **Angular Support**: Component best practices and template accessibility rules
|
|
9
|
-
- **RxJS Guidelines**: Observable patterns, Finnish notation, and operator safety
|
|
10
|
-
- **Code Style**: Formatting rules, line limits, and structural consistency
|
|
11
|
-
- **Accessibility**: ARIA validation, keyboard events, and semantic HTML
|
|
12
|
-
- **Testing**: Jest configurations with appropriate relaxations for test files
|
|
13
|
-
- **Additional Support**: JSON, Storybook, and more
|
|
14
|
-
|
|
15
|
-
## Installation
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm install --save-dev lint-suite
|
|
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
|
-
### eslint-plugin
|
|
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
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
1
|
+
# Lint Suite
|
|
2
|
+
|
|
3
|
+
A comprehensive collection of ESLint Flat configurations for modern web applications.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **TypeScript Linting**: Strict typing rules, consistent imports, and code organization
|
|
8
|
+
- **Angular Support**: Component best practices and template accessibility rules
|
|
9
|
+
- **RxJS Guidelines**: Observable patterns, Finnish notation, and operator safety
|
|
10
|
+
- **Code Style**: Formatting rules, line limits, and structural consistency
|
|
11
|
+
- **Accessibility**: ARIA validation, keyboard events, and semantic HTML
|
|
12
|
+
- **Testing**: Jest configurations with appropriate relaxations for test files
|
|
13
|
+
- **Additional Support**: JSON, Storybook, and more
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install --save-dev lint-suite
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Dependencies
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install --save-dev eslint typescript-eslint eslint-config-prettier
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
Create a `.eslintrc.config.mjs` file in your project root:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
import { base, javascript, typescript } from 'lint-suite';
|
|
33
|
+
|
|
34
|
+
export default [
|
|
35
|
+
...base,
|
|
36
|
+
...javascript,
|
|
37
|
+
...typescript
|
|
38
|
+
// Rest of the required configurations
|
|
39
|
+
];
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
You can selectively include configurations you need.
|
|
43
|
+
|
|
44
|
+
## Available Configurations
|
|
45
|
+
|
|
46
|
+
- `base`: Core JavaScript rules and formatting
|
|
47
|
+
- `typescript`: TypeScript-specific rules
|
|
48
|
+
- `angular`: Angular component best practices
|
|
49
|
+
- `angularTemplate`: HTML template rules with accessibility focus
|
|
50
|
+
- `rxjs`: Observable patterns and operator safety
|
|
51
|
+
- `jest`: Testing configurations
|
|
52
|
+
- `json`: JSON file linting
|
|
53
|
+
- `storybook`: Storybook support
|
|
54
|
+
|
|
55
|
+
## Customization
|
|
56
|
+
|
|
57
|
+
You can override any rules by adding a `rules` section to your ESLint config:
|
|
58
|
+
|
|
59
|
+
```js
|
|
60
|
+
import { typescript } from 'lint-suite';
|
|
61
|
+
|
|
62
|
+
export default [
|
|
63
|
+
...typescript,
|
|
64
|
+
{
|
|
65
|
+
rules: {
|
|
66
|
+
'@typescript-eslint/explicit-function-return-type': 'off'
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Available Rules (you can add more as you prefer)
|
|
73
|
+
|
|
74
|
+
### nx/eslint-plugin
|
|
75
|
+
|
|
76
|
+
- `@nx/enforce-module-boundaries`: Enforces module boundary restrictions
|
|
77
|
+
- `@nx/dependency-checks`: Validates dependencies in workspace projects
|
|
78
|
+
- ...
|
|
79
|
+
|
|
80
|
+
### eslint-plugin-jest
|
|
81
|
+
|
|
82
|
+
- `jest/no-disabled-tests`: Disallows disabled tests
|
|
83
|
+
- `jest/expect-expect`: Ensures test cases contain at least one expect statement
|
|
84
|
+
- `jest/valid-expect`: Validates expect() usage
|
|
85
|
+
- ...
|
|
86
|
+
|
|
87
|
+
### eslint-plugin-json
|
|
88
|
+
|
|
89
|
+
- `json/json`: Validates JSON syntax
|
|
90
|
+
- `json/sort-package-json`: Enforces consistent ordering in package.json
|
|
91
|
+
- ...
|
|
92
|
+
|
|
93
|
+
### @smarttools/eslint-plugin-rxjs
|
|
94
|
+
|
|
95
|
+
- `@rxjs/finnish`: Enforces Finnish notation for observables
|
|
96
|
+
- `@rxjs/no-ignored-subscription`: Prevents ignoring returned subscriptions
|
|
97
|
+
- `@rxjs/no-unsafe-takeuntil`: Ensures proper usage of takeUntil operator
|
|
98
|
+
- ...
|
|
99
|
+
|
|
100
|
+
### eslint-plugin-storybook
|
|
101
|
+
|
|
102
|
+
- `storybook/no-redundant-story-name`: Prevents redundant story names
|
|
103
|
+
- `storybook/csf-component`: Enforces Component Story Format standards
|
|
104
|
+
- `storybook/hierarchy-separator`: Enforces story hierarchy separators
|
|
105
|
+
- ...
|
|
106
|
+
|
|
107
|
+
### eslint-plugin-import
|
|
108
|
+
|
|
109
|
+
- `import/no-unresolved`: Ensures imports point to valid modules
|
|
110
|
+
- `import/order`: Enforces a consistent order of import statements
|
|
111
|
+
- `import/no-duplicates`: Prevents duplicate imports
|
|
112
|
+
- ...
|
|
113
|
+
|
|
114
|
+
### @stylistic/eslint-plugin
|
|
115
|
+
|
|
116
|
+
- `@stylistic/max-len`: Enforces maximum line length
|
|
117
|
+
- `@stylistic/indent`: Enforces consistent indentation
|
|
118
|
+
- `@stylistic/quotes`: Enforces consistent quote style
|
|
119
|
+
- ...
|
|
120
|
+
|
|
121
|
+
## Contributing
|
|
122
|
+
|
|
123
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for contribution guidelines.
|
|
124
|
+
|
|
125
|
+
## License
|
|
126
|
+
|
|
127
|
+
MIT
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```
|
|
@@ -44,12 +44,14 @@ __export(index_exports, {
|
|
|
44
44
|
module.exports = __toCommonJS(index_exports);
|
|
45
45
|
|
|
46
46
|
// packages/lint-suite/src/lib/angular-template.ts
|
|
47
|
-
var
|
|
48
|
-
var
|
|
49
|
-
|
|
47
|
+
var import_angular_eslint = require("angular-eslint");
|
|
48
|
+
var import_typescript_eslint = require("typescript-eslint");
|
|
49
|
+
var angularTemplate = (0, import_typescript_eslint.config)([
|
|
50
50
|
{
|
|
51
51
|
files: ["**/*.html"],
|
|
52
|
+
extends: [...import_angular_eslint.configs.templateAccessibility, ...import_angular_eslint.configs.templateRecommended],
|
|
52
53
|
rules: {
|
|
54
|
+
"@angular-eslint/template/prefer-template-literal": "error",
|
|
53
55
|
"@angular-eslint/template/no-any": "error",
|
|
54
56
|
"@angular-eslint/template/no-duplicate-attributes": "error",
|
|
55
57
|
"@angular-eslint/template/button-has-type": "error",
|
|
@@ -87,26 +89,40 @@ var angularTemplate = [
|
|
|
87
89
|
]
|
|
88
90
|
}
|
|
89
91
|
}
|
|
90
|
-
];
|
|
92
|
+
]);
|
|
91
93
|
|
|
92
94
|
// packages/lint-suite/src/lib/angular.ts
|
|
93
|
-
var
|
|
94
|
-
var
|
|
95
|
-
|
|
95
|
+
var import_globals = __toESM(require("globals"), 1);
|
|
96
|
+
var import_angular_eslint2 = require("angular-eslint");
|
|
97
|
+
var import_typescript_eslint2 = require("typescript-eslint");
|
|
98
|
+
var angular = (0, import_typescript_eslint2.config)([
|
|
96
99
|
{
|
|
97
100
|
files: ["**/*.ts"],
|
|
101
|
+
extends: [...import_angular_eslint2.configs.tsRecommended],
|
|
102
|
+
languageOptions: {
|
|
103
|
+
globals: {
|
|
104
|
+
...import_globals.default.browser,
|
|
105
|
+
...import_globals.default.es2025,
|
|
106
|
+
...import_globals.default.node
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
processor: import_angular_eslint2.processInlineTemplates,
|
|
110
|
+
plugins: { "@angular-eslint": import_angular_eslint2.tsPlugin },
|
|
98
111
|
rules: {
|
|
99
|
-
"@angular-eslint/prefer-on-push-component-change-detection": "error"
|
|
112
|
+
"@angular-eslint/prefer-on-push-component-change-detection": "error",
|
|
113
|
+
"@angular-eslint/prefer-signals": "error",
|
|
114
|
+
"@angular-eslint/use-injectable-provided-in": "error"
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
|
-
];
|
|
117
|
+
]);
|
|
103
118
|
|
|
104
119
|
// packages/lint-suite/src/lib/base.ts
|
|
105
|
-
var
|
|
106
|
-
var
|
|
120
|
+
var import_eslint_plugin = require("@nx/eslint-plugin");
|
|
121
|
+
var import_eslint_plugin2 = __toESM(require("@stylistic/eslint-plugin"), 1);
|
|
107
122
|
var import_eslint_plugin_import_x = __toESM(require("eslint-plugin-import-x"), 1);
|
|
108
|
-
var
|
|
109
|
-
|
|
123
|
+
var import_typescript_eslint3 = require("typescript-eslint");
|
|
124
|
+
var base = (0, import_typescript_eslint3.config)([
|
|
125
|
+
{ extends: [...import_eslint_plugin.configs["flat/base"]] },
|
|
110
126
|
{
|
|
111
127
|
files: [
|
|
112
128
|
"**/*.js",
|
|
@@ -118,7 +134,7 @@ var base = [
|
|
|
118
134
|
"**/*.cts",
|
|
119
135
|
"**/*.mts"
|
|
120
136
|
],
|
|
121
|
-
|
|
137
|
+
extends: [import_eslint_plugin_import_x.default.flatConfigs.recommended]
|
|
122
138
|
},
|
|
123
139
|
{
|
|
124
140
|
files: [
|
|
@@ -131,7 +147,7 @@ var base = [
|
|
|
131
147
|
"**/*.cts",
|
|
132
148
|
"**/*.mts"
|
|
133
149
|
],
|
|
134
|
-
|
|
150
|
+
extends: [import_eslint_plugin2.default.configs.recommended]
|
|
135
151
|
},
|
|
136
152
|
{
|
|
137
153
|
files: [
|
|
@@ -150,7 +166,7 @@ var base = [
|
|
|
150
166
|
"no-console": ["warn", { allow: ["warn", "error"] }],
|
|
151
167
|
"no-debugger": "error",
|
|
152
168
|
eqeqeq: ["error", "always", { null: "ignore" }],
|
|
153
|
-
curly: ["error", "
|
|
169
|
+
curly: ["error", "multi"],
|
|
154
170
|
"prefer-const": ["error", { destructuring: "all" }],
|
|
155
171
|
"no-var": "error",
|
|
156
172
|
"object-shorthand": "error",
|
|
@@ -181,24 +197,6 @@ var base = [
|
|
|
181
197
|
// Enforce consistency for getters/setters
|
|
182
198
|
"class-methods-use-this": "error",
|
|
183
199
|
"no-underscore-dangle": "error",
|
|
184
|
-
"padding-line-between-statements": [
|
|
185
|
-
"error",
|
|
186
|
-
{
|
|
187
|
-
blankLine: "always",
|
|
188
|
-
prev: "export",
|
|
189
|
-
next: ["export", "const"]
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
blankLine: "always",
|
|
193
|
-
prev: "*",
|
|
194
|
-
next: "return"
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
blankLine: "always",
|
|
198
|
-
prev: "*",
|
|
199
|
-
next: "if"
|
|
200
|
-
}
|
|
201
|
-
],
|
|
202
200
|
"max-len": [
|
|
203
201
|
"error",
|
|
204
202
|
{
|
|
@@ -215,6 +213,38 @@ var base = [
|
|
|
215
213
|
}
|
|
216
214
|
}
|
|
217
215
|
],
|
|
216
|
+
"@stylistic/padding-line-between-statements": [
|
|
217
|
+
"error",
|
|
218
|
+
{
|
|
219
|
+
blankLine: "always",
|
|
220
|
+
prev: "export",
|
|
221
|
+
next: ["export", "const"]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
blankLine: "always",
|
|
225
|
+
prev: ["const", "let", "var"],
|
|
226
|
+
next: "*"
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
blankLine: "any",
|
|
230
|
+
prev: ["const", "let", "var"],
|
|
231
|
+
next: ["const", "let", "var"]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
blankLine: "always",
|
|
235
|
+
prev: "*",
|
|
236
|
+
next: [
|
|
237
|
+
"for",
|
|
238
|
+
"if",
|
|
239
|
+
"return",
|
|
240
|
+
"throw",
|
|
241
|
+
"switch",
|
|
242
|
+
"try",
|
|
243
|
+
"class",
|
|
244
|
+
"function"
|
|
245
|
+
]
|
|
246
|
+
}
|
|
247
|
+
],
|
|
218
248
|
"@stylistic/comma-dangle": [
|
|
219
249
|
"error",
|
|
220
250
|
{
|
|
@@ -300,36 +330,45 @@ var base = [
|
|
|
300
330
|
"class-methods-use-this": "off"
|
|
301
331
|
}
|
|
302
332
|
}
|
|
303
|
-
];
|
|
333
|
+
]);
|
|
304
334
|
|
|
305
335
|
// packages/lint-suite/src/lib/javascript.ts
|
|
306
|
-
var
|
|
307
|
-
var
|
|
336
|
+
var import_eslint_plugin3 = require("@nx/eslint-plugin");
|
|
337
|
+
var import_typescript_eslint4 = require("typescript-eslint");
|
|
338
|
+
var javascript = (0, import_typescript_eslint4.config)({
|
|
339
|
+
files: ["**/*.js", "**/*.jsx", "**/*.cjs", "**/*.mjs"],
|
|
340
|
+
extends: [...import_eslint_plugin3.configs["flat/javascript"]],
|
|
341
|
+
rules: {}
|
|
342
|
+
});
|
|
308
343
|
|
|
309
344
|
// packages/lint-suite/src/lib/jest.ts
|
|
310
345
|
var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
|
|
311
|
-
var
|
|
346
|
+
var import_typescript_eslint5 = require("typescript-eslint");
|
|
347
|
+
var jest = (0, import_typescript_eslint5.config)([
|
|
312
348
|
{
|
|
313
349
|
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
314
|
-
|
|
350
|
+
extends: [import_eslint_plugin_jest.default.configs["flat/all"]],
|
|
315
351
|
rules: {
|
|
316
352
|
"jest/no-done-callback": "off"
|
|
317
353
|
}
|
|
318
354
|
}
|
|
319
|
-
];
|
|
355
|
+
]);
|
|
320
356
|
|
|
321
357
|
// packages/lint-suite/src/lib/json.ts
|
|
322
358
|
var import_eslint_plugin_json = __toESM(require("eslint-plugin-json"), 1);
|
|
323
|
-
var
|
|
359
|
+
var import_typescript_eslint6 = require("typescript-eslint");
|
|
360
|
+
var json = (0, import_typescript_eslint6.config)([
|
|
324
361
|
{
|
|
325
362
|
files: ["**/*.json"],
|
|
326
|
-
|
|
363
|
+
extends: [import_eslint_plugin_json.default.configs.recommended],
|
|
364
|
+
rules: {}
|
|
327
365
|
}
|
|
328
|
-
];
|
|
366
|
+
]);
|
|
329
367
|
|
|
330
368
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
331
369
|
var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
|
|
332
|
-
var
|
|
370
|
+
var import_typescript_eslint7 = require("typescript-eslint");
|
|
371
|
+
var rxjs = (0, import_typescript_eslint7.config)([
|
|
333
372
|
{
|
|
334
373
|
files: [
|
|
335
374
|
"**/*.js",
|
|
@@ -346,7 +385,7 @@ var rxjs = [
|
|
|
346
385
|
projectService: true
|
|
347
386
|
}
|
|
348
387
|
},
|
|
349
|
-
|
|
388
|
+
extends: [import_eslint_plugin_rxjs.default.configs.recommended]
|
|
350
389
|
},
|
|
351
390
|
{
|
|
352
391
|
files: [
|
|
@@ -394,20 +433,22 @@ var rxjs = [
|
|
|
394
433
|
"rxjs/no-ignored-subscription": "off"
|
|
395
434
|
}
|
|
396
435
|
}
|
|
397
|
-
];
|
|
436
|
+
]);
|
|
398
437
|
|
|
399
438
|
// packages/lint-suite/src/lib/storybook.ts
|
|
400
439
|
var import_eslint_plugin_storybook = __toESM(require("eslint-plugin-storybook"), 1);
|
|
401
|
-
var
|
|
402
|
-
|
|
440
|
+
var import_typescript_eslint8 = require("typescript-eslint");
|
|
441
|
+
var storybook = (0, import_typescript_eslint8.config)([
|
|
403
442
|
{
|
|
404
443
|
ignores: ["!.storybook"],
|
|
405
|
-
files: ["**/*.stories.ts"]
|
|
444
|
+
files: ["**/*.stories.ts"],
|
|
445
|
+
extends: [import_eslint_plugin_storybook.default.configs["flat/recommended"]],
|
|
446
|
+
rules: {}
|
|
406
447
|
}
|
|
407
|
-
];
|
|
448
|
+
]);
|
|
408
449
|
|
|
409
450
|
// packages/lint-suite/src/lib/typescript.ts
|
|
410
|
-
var
|
|
451
|
+
var import_eslint_plugin4 = require("@nx/eslint-plugin");
|
|
411
452
|
var import_eslint_import_resolver_typescript = require("eslint-import-resolver-typescript");
|
|
412
453
|
var import_eslint_plugin_import_x2 = __toESM(require("eslint-plugin-import-x"), 1);
|
|
413
454
|
|
|
@@ -548,15 +589,21 @@ var explicit_accessibility_default = createRule({
|
|
|
548
589
|
});
|
|
549
590
|
|
|
550
591
|
// packages/lint-suite/src/lib/typescript.ts
|
|
592
|
+
var import_typescript_eslint9 = require("typescript-eslint");
|
|
551
593
|
var localTypescriptRules = {
|
|
552
594
|
rules: {
|
|
553
595
|
"explicit-accessibility": explicit_accessibility_default
|
|
554
596
|
}
|
|
555
597
|
};
|
|
556
|
-
var typescript = [
|
|
598
|
+
var typescript = (0, import_typescript_eslint9.config)([
|
|
557
599
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
558
|
-
|
|
559
|
-
|
|
600
|
+
{
|
|
601
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
602
|
+
extends: [
|
|
603
|
+
import_eslint_plugin_import_x2.default.flatConfigs.typescript,
|
|
604
|
+
...import_eslint_plugin4.configs["flat/typescript"]
|
|
605
|
+
]
|
|
606
|
+
},
|
|
560
607
|
{
|
|
561
608
|
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
562
609
|
plugins: { local: localTypescriptRules },
|
|
@@ -579,6 +626,8 @@ var typescript = [
|
|
|
579
626
|
// Consider enabling if maximum explicitness is desired, even if verbose:
|
|
580
627
|
// C. Null/Undefined Safety (Requires strictNullChecks)
|
|
581
628
|
"@typescript-eslint/no-non-null-assertion": "error",
|
|
629
|
+
"@typescript-eslint/prefer-nullish-coalescing": "error",
|
|
630
|
+
"@typescript-eslint/prefer-optional-chain": "error",
|
|
582
631
|
// D. Promise Handling (Supplementing plugin:promise/recommended)
|
|
583
632
|
"@typescript-eslint/no-floating-promises": [
|
|
584
633
|
"error",
|
|
@@ -745,7 +794,7 @@ var typescript = [
|
|
|
745
794
|
"@typescript-eslint/naming-convention": "off"
|
|
746
795
|
}
|
|
747
796
|
}
|
|
748
|
-
];
|
|
797
|
+
]);
|
|
749
798
|
|
|
750
799
|
// packages/lint-suite/src/index.ts
|
|
751
800
|
var recommended = [
|