lint-suite 1.0.1 → 1.0.3
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/README.md +9 -2
- package/index.cjs +144 -45
- package/index.cjs.map +3 -3
- package/index.js +152 -45
- package/index.js.map +3 -3
- package/lib/base.d.ts.map +1 -1
- package/lib/rxjs.d.ts.map +1 -1
- package/lib/typescript.d.ts +16 -20
- package/lib/typescript.d.ts.map +1 -1
- package/package.json +12 -3
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ You can selectively include configurations you need.
|
|
|
40
40
|
- `base`: Core JavaScript rules and formatting
|
|
41
41
|
- `typescript`: TypeScript-specific rules
|
|
42
42
|
- `angular`: Angular component best practices
|
|
43
|
-
- `
|
|
43
|
+
- `angularTemplate`: HTML template rules with accessibility focus
|
|
44
44
|
- `rxjs`: Observable patterns and operator safety
|
|
45
45
|
- `jest`: Testing configurations
|
|
46
46
|
- `json`: JSON file linting
|
|
@@ -63,47 +63,54 @@ export default [
|
|
|
63
63
|
];
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
## Available Rules
|
|
66
|
+
## Available Rules (you can add more as you prefer)
|
|
67
67
|
|
|
68
68
|
### nx/eslint-plugin
|
|
69
69
|
|
|
70
70
|
- `@nx/enforce-module-boundaries`: Enforces module boundary restrictions
|
|
71
71
|
- `@nx/dependency-checks`: Validates dependencies in workspace projects
|
|
72
|
+
- ...
|
|
72
73
|
|
|
73
74
|
### eslint-plugin-jest
|
|
74
75
|
|
|
75
76
|
- `jest/no-disabled-tests`: Disallows disabled tests
|
|
76
77
|
- `jest/expect-expect`: Ensures test cases contain at least one expect statement
|
|
77
78
|
- `jest/valid-expect`: Validates expect() usage
|
|
79
|
+
- ...
|
|
78
80
|
|
|
79
81
|
### eslint-plugin-json
|
|
80
82
|
|
|
81
83
|
- `json/json`: Validates JSON syntax
|
|
82
84
|
- `json/sort-package-json`: Enforces consistent ordering in package.json
|
|
85
|
+
- ...
|
|
83
86
|
|
|
84
87
|
### @smarttools/eslint-plugin-rxjs
|
|
85
88
|
|
|
86
89
|
- `@rxjs/finnish`: Enforces Finnish notation for observables
|
|
87
90
|
- `@rxjs/no-ignored-subscription`: Prevents ignoring returned subscriptions
|
|
88
91
|
- `@rxjs/no-unsafe-takeuntil`: Ensures proper usage of takeUntil operator
|
|
92
|
+
- ...
|
|
89
93
|
|
|
90
94
|
### eslint-plugin-storybook
|
|
91
95
|
|
|
92
96
|
- `storybook/no-redundant-story-name`: Prevents redundant story names
|
|
93
97
|
- `storybook/csf-component`: Enforces Component Story Format standards
|
|
94
98
|
- `storybook/hierarchy-separator`: Enforces story hierarchy separators
|
|
99
|
+
- ...
|
|
95
100
|
|
|
96
101
|
### eslint-plugin-import
|
|
97
102
|
|
|
98
103
|
- `import/no-unresolved`: Ensures imports point to valid modules
|
|
99
104
|
- `import/order`: Enforces a consistent order of import statements
|
|
100
105
|
- `import/no-duplicates`: Prevents duplicate imports
|
|
106
|
+
- ...
|
|
101
107
|
|
|
102
108
|
### @stylistic/eslint-plugin
|
|
103
109
|
|
|
104
110
|
- `@stylistic/max-len`: Enforces maximum line length
|
|
105
111
|
- `@stylistic/indent`: Enforces consistent indentation
|
|
106
112
|
- `@stylistic/quotes`: Enforces consistent quote style
|
|
113
|
+
- ...
|
|
107
114
|
|
|
108
115
|
## Contributing
|
|
109
116
|
|
package/index.cjs
CHANGED
|
@@ -102,16 +102,58 @@ var angular = [
|
|
|
102
102
|
var import_eslint_plugin3 = __toESM(require("@nx/eslint-plugin"), 1);
|
|
103
103
|
var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
|
|
104
104
|
var import_eslint_plugin4 = __toESM(require("@stylistic/eslint-plugin"), 1);
|
|
105
|
+
var import_flat = __toESM(require("eslint-config-prettier/flat"), 1);
|
|
106
|
+
var packageExists = (name) => {
|
|
107
|
+
try {
|
|
108
|
+
require.resolve(name);
|
|
109
|
+
return true;
|
|
110
|
+
} catch {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
var isPrettierAvailable = packageExists("prettier") && packageExists("eslint-config-prettier");
|
|
105
115
|
var base = [
|
|
106
116
|
...import_eslint_plugin3.default.configs["flat/base"],
|
|
107
|
-
import_eslint_plugin_import.default.flatConfigs.recommended,
|
|
108
|
-
import_eslint_plugin4.default.configs.recommended,
|
|
109
117
|
{
|
|
110
|
-
files: [
|
|
111
|
-
|
|
118
|
+
files: [
|
|
119
|
+
"**/*.js",
|
|
120
|
+
"**/*.jsx",
|
|
121
|
+
"**/*.cjs",
|
|
122
|
+
"**/*.mjs",
|
|
123
|
+
"**/*.ts",
|
|
124
|
+
"**/*.tsx",
|
|
125
|
+
"**/*.cts",
|
|
126
|
+
"**/*.mts"
|
|
127
|
+
],
|
|
128
|
+
...import_eslint_plugin_import.default.flatConfigs.recommended
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
files: [
|
|
132
|
+
"**/*.js",
|
|
133
|
+
"**/*.jsx",
|
|
134
|
+
"**/*.cjs",
|
|
135
|
+
"**/*.mjs",
|
|
136
|
+
"**/*.ts",
|
|
137
|
+
"**/*.tsx",
|
|
138
|
+
"**/*.cts",
|
|
139
|
+
"**/*.mts"
|
|
140
|
+
],
|
|
141
|
+
...import_eslint_plugin4.default.configs.recommended
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
files: [
|
|
145
|
+
"**/*.js",
|
|
146
|
+
"**/*.jsx",
|
|
147
|
+
"**/*.cjs",
|
|
148
|
+
"**/*.mjs",
|
|
149
|
+
"**/*.ts",
|
|
150
|
+
"**/*.tsx",
|
|
151
|
+
"**/*.cts",
|
|
152
|
+
"**/*.mts"
|
|
153
|
+
],
|
|
112
154
|
rules: {
|
|
113
|
-
// 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
|
|
114
155
|
"no-console": "warn",
|
|
156
|
+
"class-methods-use-this": "error",
|
|
115
157
|
"max-len": [
|
|
116
158
|
"error",
|
|
117
159
|
{
|
|
@@ -119,14 +161,6 @@ var base = [
|
|
|
119
161
|
ignoreComments: true
|
|
120
162
|
}
|
|
121
163
|
],
|
|
122
|
-
"max-lines": [
|
|
123
|
-
"error",
|
|
124
|
-
{
|
|
125
|
-
max: 150,
|
|
126
|
-
skipBlankLines: true,
|
|
127
|
-
skipComments: true
|
|
128
|
-
}
|
|
129
|
-
],
|
|
130
164
|
"spaced-comment": [
|
|
131
165
|
2,
|
|
132
166
|
"always",
|
|
@@ -168,10 +202,46 @@ var base = [
|
|
|
168
202
|
memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
|
|
169
203
|
allowSeparatedGroups: true
|
|
170
204
|
}
|
|
171
|
-
]
|
|
172
|
-
"class-methods-use-this": "error"
|
|
205
|
+
]
|
|
173
206
|
}
|
|
174
|
-
}
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
files: [
|
|
210
|
+
"**/*.js",
|
|
211
|
+
"**/*.jsx",
|
|
212
|
+
"**/*.cjs",
|
|
213
|
+
"**/*.mjs",
|
|
214
|
+
"**/*.ts",
|
|
215
|
+
"**/*.tsx",
|
|
216
|
+
"**/*.cts",
|
|
217
|
+
"**/*.mts",
|
|
218
|
+
"**/*.html"
|
|
219
|
+
],
|
|
220
|
+
rules: {
|
|
221
|
+
"max-lines": [
|
|
222
|
+
"error",
|
|
223
|
+
{
|
|
224
|
+
max: 150,
|
|
225
|
+
skipBlankLines: true,
|
|
226
|
+
skipComments: true
|
|
227
|
+
}
|
|
228
|
+
]
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
233
|
+
rules: {
|
|
234
|
+
"max-lines": [
|
|
235
|
+
"error",
|
|
236
|
+
{
|
|
237
|
+
max: 300,
|
|
238
|
+
skipBlankLines: true,
|
|
239
|
+
skipComments: true
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
isPrettierAvailable ? import_flat.default : {}
|
|
175
245
|
];
|
|
176
246
|
|
|
177
247
|
// packages/lint-suite/src/lib/typescript.ts
|
|
@@ -179,49 +249,38 @@ var import_eslint_plugin5 = __toESM(require("@nx/eslint-plugin"), 1);
|
|
|
179
249
|
var import_eslint_plugin_import2 = __toESM(require("eslint-plugin-import"), 1);
|
|
180
250
|
var typescript = [
|
|
181
251
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
182
|
-
...import_eslint_plugin5.default.configs["flat/typescript"],
|
|
183
252
|
import_eslint_plugin_import2.default.flatConfigs.typescript,
|
|
253
|
+
...import_eslint_plugin5.default.configs["flat/typescript"],
|
|
184
254
|
{
|
|
185
|
-
|
|
186
|
-
parserOptions: {
|
|
187
|
-
projectService: true
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
files: ["**/*.ts"],
|
|
255
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
193
256
|
rules: {
|
|
194
257
|
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
195
258
|
"@typescript-eslint/consistent-type-imports": "error",
|
|
196
259
|
"@typescript-eslint/explicit-function-return-type": "warn",
|
|
197
|
-
"@typescript-eslint/prefer-readonly": "error",
|
|
198
260
|
"@typescript-eslint/no-empty-function": "error"
|
|
199
261
|
}
|
|
200
262
|
},
|
|
201
263
|
{
|
|
202
|
-
files: ["**/*.
|
|
264
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
265
|
+
languageOptions: {
|
|
266
|
+
parserOptions: {
|
|
267
|
+
projectService: true
|
|
268
|
+
}
|
|
269
|
+
},
|
|
203
270
|
rules: {
|
|
204
|
-
"
|
|
271
|
+
"@typescript-eslint/prefer-readonly": "error"
|
|
205
272
|
}
|
|
206
273
|
},
|
|
207
274
|
{
|
|
208
|
-
files: ["**/*.
|
|
275
|
+
files: ["**/*.action.ts"],
|
|
209
276
|
rules: {
|
|
210
|
-
"
|
|
277
|
+
"max-classes-per-file": "off"
|
|
211
278
|
}
|
|
212
279
|
},
|
|
213
280
|
{
|
|
214
|
-
files: ["**/*.
|
|
281
|
+
files: ["**/*.state.ts"],
|
|
215
282
|
rules: {
|
|
216
|
-
"
|
|
217
|
-
"max-lines": [
|
|
218
|
-
"error",
|
|
219
|
-
{
|
|
220
|
-
max: 300,
|
|
221
|
-
skipBlankLines: true,
|
|
222
|
-
skipComments: true
|
|
223
|
-
}
|
|
224
|
-
]
|
|
283
|
+
"class-methods-use-this": "off"
|
|
225
284
|
}
|
|
226
285
|
}
|
|
227
286
|
];
|
|
@@ -230,7 +289,7 @@ var typescript = [
|
|
|
230
289
|
var import_eslint_plugin_jest = __toESM(require("eslint-plugin-jest"), 1);
|
|
231
290
|
var jest = [
|
|
232
291
|
{
|
|
233
|
-
files: ["**/*.spec.ts"],
|
|
292
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
234
293
|
...import_eslint_plugin_jest.default.configs["flat/recommended"],
|
|
235
294
|
rules: {
|
|
236
295
|
...import_eslint_plugin_jest.default.configs["flat/recommended"].rules,
|
|
@@ -252,10 +311,50 @@ var json = [
|
|
|
252
311
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
253
312
|
var import_eslint_plugin_rxjs = __toESM(require("@smarttools/eslint-plugin-rxjs"), 1);
|
|
254
313
|
var rxjs = [
|
|
255
|
-
import_eslint_plugin_rxjs.default.configs.recommended,
|
|
256
314
|
{
|
|
257
|
-
files: [
|
|
258
|
-
|
|
315
|
+
files: [
|
|
316
|
+
"**/*.js",
|
|
317
|
+
"**/*.jsx",
|
|
318
|
+
"**/*.cjs",
|
|
319
|
+
"**/*.mjs",
|
|
320
|
+
"**/*.ts",
|
|
321
|
+
"**/*.tsx",
|
|
322
|
+
"**/*.cts",
|
|
323
|
+
"**/*.mts"
|
|
324
|
+
],
|
|
325
|
+
languageOptions: {
|
|
326
|
+
parserOptions: {
|
|
327
|
+
projectService: true
|
|
328
|
+
}
|
|
329
|
+
},
|
|
330
|
+
...import_eslint_plugin_rxjs.default.configs.recommended
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
files: [
|
|
334
|
+
"**/*.js",
|
|
335
|
+
"**/*.jsx",
|
|
336
|
+
"**/*.cjs",
|
|
337
|
+
"**/*.mjs",
|
|
338
|
+
"**/*.ts",
|
|
339
|
+
"**/*.tsx",
|
|
340
|
+
"**/*.cts",
|
|
341
|
+
"**/*.mts"
|
|
342
|
+
],
|
|
343
|
+
plugins: {
|
|
344
|
+
rxjs: import_eslint_plugin_rxjs.default
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
files: [
|
|
349
|
+
"**/*.js",
|
|
350
|
+
"**/*.jsx",
|
|
351
|
+
"**/*.cjs",
|
|
352
|
+
"**/*.mjs",
|
|
353
|
+
"**/*.ts",
|
|
354
|
+
"**/*.tsx",
|
|
355
|
+
"**/*.cts",
|
|
356
|
+
"**/*.mts"
|
|
357
|
+
],
|
|
259
358
|
rules: {
|
|
260
359
|
"rxjs/prefer-observer": "error",
|
|
261
360
|
"rxjs/finnish": "warn",
|
|
@@ -270,7 +369,7 @@ var rxjs = [
|
|
|
270
369
|
}
|
|
271
370
|
},
|
|
272
371
|
{
|
|
273
|
-
files: ["**/*.spec.ts"],
|
|
372
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
274
373
|
rules: {
|
|
275
374
|
"rxjs/no-ignored-subscription": "off"
|
|
276
375
|
}
|
package/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../packages/lint-suite/src/index.ts", "../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
|
|
4
|
-
"sourcesContent": ["export { angularTemplate } from './lib/angular-template.js';\r\nexport { angular } from './lib/angular.js';\r\nexport { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { jest } from './lib/jest.js';\r\nexport { json } from './lib/json.js';\r\nexport { rxjs } from './lib/rxjs.js';\r\nexport { storybook } from './lib/storybook.js';\r\nexport { javascript } from './lib/javascript.js';\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAAe;AAER,IAAM,kBAAkB;AAAA,EAC7B,GAAG,qBAAAA,QAAG,QAAQ,uBAAuB;AAAA,EACrC;AAAA,IACE,OAAO,CAAC,WAAW;AAAA,IACnB,OAAO;AAAA,MACL,4CAA4C;AAAA,MAC5C,iDAAiD;AAAA,MACjD,uCAAuC;AAAA,MACvC,qCAAqC;AAAA,MACrC,6CAA6C;AAAA,MAC7C,yDAAyD;AAAA,MACzD,yDAAyD;AAAA,MACzD,wCAAwC;AAAA,MACxC,yCAAyC;AAAA,MACzC,oDAAoD;AAAA,MACpD,gDAAgD;AAAA,MAChD,qDAAqD;AAAA,MACrD,yCAAyC;AAAA,MACzC,6CAA6C;AAAA,QAC3C;AAAA,QACA;AAAA,UACE,cAAc;AAAA,UACd,OAAO;AAAA,YACL;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACpCA,IAAAC,wBAAe;AAER,IAAM,UAAU;AAAA,EACrB,GAAG,sBAAAC,QAAG,QAAQ,cAAc;AAAA,EAC5B;AAAA,IACE,OAAO,CAAC,SAAS;AAAA,IACjB,OAAO;AAAA,MACL,6DAA6D;AAAA,IAC/D;AAAA,EACF;AACF;;;ACVA,IAAAC,wBAAe;AACf,kCAAyB;AACzB,IAAAA,wBAAsB;
|
|
6
|
-
"names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPlugin", "stylistic", "import_eslint_plugin", "import_eslint_plugin_import", "
|
|
4
|
+
"sourcesContent": ["export { angularTemplate } from './lib/angular-template.js';\r\nexport { angular } from './lib/angular.js';\r\nexport { base } from './lib/base.js';\r\nexport { typescript } from './lib/typescript.js';\r\nexport { jest } from './lib/jest.js';\r\nexport { json } from './lib/json.js';\r\nexport { rxjs } from './lib/rxjs.js';\r\nexport { storybook } from './lib/storybook.js';\r\nexport { javascript } from './lib/javascript.js';\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nconst packageExists = (name: string): boolean => {\r\n try {\r\n require.resolve(name);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst isPrettierAvailable =\r\n packageExists('prettier') && packageExists('eslint-config-prettier');\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...importPlugin.flatConfigs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...stylistic.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'no-console': 'warn',\r\n 'class-methods-use-this': 'error',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n '**/*.html',\r\n ],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n isPrettierAvailable ? eslintConfigPrettier : {},\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n rules: {\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n ...rxjsEslint.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n plugins: {\r\n rxjs: rxjsEslint,\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,2BAAe;AAER,IAAM,kBAAkB;AAAA,EAC7B,GAAG,qBAAAA,QAAG,QAAQ,uBAAuB;AAAA,EACrC;AAAA,IACE,OAAO,CAAC,WAAW;AAAA,IACnB,OAAO;AAAA,MACL,4CAA4C;AAAA,MAC5C,iDAAiD;AAAA,MACjD,uCAAuC;AAAA,MACvC,qCAAqC;AAAA,MACrC,6CAA6C;AAAA,MAC7C,yDAAyD;AAAA,MACzD,yDAAyD;AAAA,MACzD,wCAAwC;AAAA,MACxC,yCAAyC;AAAA,MACzC,oDAAoD;AAAA,MACpD,gDAAgD;AAAA,MAChD,qDAAqD;AAAA,MACrD,yCAAyC;AAAA,MACzC,6CAA6C;AAAA,QAC3C;AAAA,QACA;AAAA,UACE,cAAc;AAAA,UACd,OAAO;AAAA,YACL;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,YACA;AAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACpCA,IAAAC,wBAAe;AAER,IAAM,UAAU;AAAA,EACrB,GAAG,sBAAAC,QAAG,QAAQ,cAAc;AAAA,EAC5B;AAAA,IACE,OAAO,CAAC,SAAS;AAAA,IACjB,OAAO;AAAA,MACL,6DAA6D;AAAA,IAC/D;AAAA,EACF;AACF;;;ACVA,IAAAC,wBAAe;AACf,kCAAyB;AACzB,IAAAA,wBAAsB;AACtB,kBAAiC;AAIjC,IAAM,gBAAgB,CAAC,SAA0B;AAC/C,MAAI;AACF,YAAQ,QAAQ,IAAI;AACpB,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,IAAM,sBACJ,cAAc,UAAU,KAAK,cAAc,wBAAwB;AAE9D,IAAM,OAAwB;AAAA,EACnC,GAAG,sBAAAC,QAAG,QAAQ,WAAW;AAAA,EACzB;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG,4BAAAC,QAAa,YAAY;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,GAAG,sBAAAC,QAAU,QAAQ;AAAA,EACvB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,cAAc;AAAA,MACd,0BAA0B;AAAA,MAC1B,WAAW;AAAA,QACT;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,gBAAgB;AAAA,QAClB;AAAA,MACF;AAAA,MACA,kBAAkB;AAAA,QAChB;AAAA,QACA;AAAA,QACA;AAAA,UACE,OAAO;AAAA,YACL,YAAY,CAAC,GAAG;AAAA,UAClB;AAAA,QACF;AAAA,MACF;AAAA,MACA,2BAA2B;AAAA,QACzB;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,SAAS;AAAA,UACT,SAAS;AAAA,UACT,OAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,qBAAqB;AAAA,QACnB;AAAA,QACA;AAAA,QACA;AAAA,UACE,0BAA0B;AAAA,UAC1B,YAAY;AAAA,UACZ,cAAc;AAAA,YACZ;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,gBAAgB;AAAA,QACd;AAAA,QACA;AAAA,UACE,YAAY;AAAA,UACZ,uBAAuB;AAAA,UACvB,kBAAkB;AAAA,UAClB,uBAAuB,CAAC,QAAQ,OAAO,YAAY,QAAQ;AAAA,UAC3D,sBAAsB;AAAA,QACxB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,aAAa;AAAA,QACX;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,gBAAgB;AAAA,UAChB,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,gBAAgB,gBAAgB,gBAAgB,cAAc;AAAA,IACtE,OAAO;AAAA,MACL,aAAa;AAAA,QACX;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,gBAAgB;AAAA,UAChB,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EACA,sBAAsB,YAAAC,UAAuB,CAAC;AAChD;;;ACrJA,IAAAC,wBAAe;AACf,IAAAC,+BAAyB;AAElB,IAAM,aAAa;AAAA;AAAA,EAExB,6BAAAC,QAAa,YAAY;AAAA,EACzB,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB;AAAA,EAC/B;AAAA,IACE,OAAO,CAAC,WAAW,YAAY,YAAY,UAAU;AAAA,IACrD,OAAO;AAAA,MACL,oDAAoD;AAAA,MACpD,8CAA8C;AAAA,MAC9C,oDAAoD;AAAA,MACpD,wCAAwC;AAAA,IAC1C;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,WAAW,YAAY,YAAY,UAAU;AAAA,IACrD,iBAAiB;AAAA,MACf,eAAe;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,sCAAsC;AAAA,IACxC;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,gBAAgB;AAAA,IACxB,OAAO;AAAA,MACL,wBAAwB;AAAA,IAC1B;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,eAAe;AAAA,IACvB,OAAO;AAAA,MACL,0BAA0B;AAAA,IAC5B;AAAA,EACF;AACF;;;ACvCA,gCAAuB;AAGhB,IAAM,OAAwB;AAAA,EACnC;AAAA,IACE,OAAO,CAAC,gBAAgB,gBAAgB,gBAAgB,cAAc;AAAA,IACtE,GAAG,0BAAAC,QAAW,QAAQ,kBAAkB;AAAA,IACxC,OAAO;AAAA,MACL,GAAG,0BAAAA,QAAW,QAAQ,kBAAkB,EAAE;AAAA,MAC1C,GAAG,0BAAAA,QAAW,QAAQ,YAAY,EAAE;AAAA,MACpC,yBAAyB;AAAA,IAC3B;AAAA,EACF;AACF;;;ACbA,gCAAuB;AAGhB,IAAM,OAAwB;AAAA,EACnC;AAAA,IACE,OAAO,CAAC,WAAW;AAAA,IACnB,GAAG,0BAAAC,QAAW,QAAQ;AAAA,EACxB;AACF;;;ACRA,gCAAuB;AAGhB,IAAM,OAAwB;AAAA,EACnC;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,eAAe;AAAA,QACb,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,GAAG,0BAAAC,QAAW,QAAQ;AAAA,EACxB;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,MAAM,0BAAAA;AAAA,IACR;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO;AAAA,MACL,wBAAwB;AAAA,MACxB,gBAAgB;AAAA,MAChB,yBAAyB;AAAA,MACzB,4BAA4B;AAAA,MAC5B,4BAA4B;AAAA,MAC5B,wBAAwB;AAAA,MACxB,wBAAwB;AAAA,MACxB,qBAAqB;AAAA,MACrB,oBAAoB;AAAA,MACpB,2BAA2B;AAAA,IAC7B;AAAA,EACF;AAAA,EACA;AAAA,IACE,OAAO,CAAC,gBAAgB,gBAAgB,gBAAgB,cAAc;AAAA,IACtE,OAAO;AAAA,MACL,gCAAgC;AAAA,IAClC;AAAA,EACF;AACF;;;ACnEA,qCAA4B;AAGrB,IAAM,YAA6B;AAAA,EACxC,GAAG,+BAAAC,QAAgB,QAAQ,kBAAkB;AAAA,EAC7C;AAAA,IACE,SAAS,CAAC,aAAa;AAAA,IACvB,OAAO,CAAC,iBAAiB;AAAA,EAC3B;AACF;;;ACTA,IAAAC,wBAAe;AAER,IAAM,aAAa,CAAC,GAAG,sBAAAC,QAAG,QAAQ,iBAAiB,CAAC;",
|
|
6
|
+
"names": ["nx", "import_eslint_plugin", "nx", "import_eslint_plugin", "nx", "importPlugin", "stylistic", "eslintConfigPrettier", "import_eslint_plugin", "import_eslint_plugin_import", "importPlugin", "nx", "jestEslint", "jsonEslint", "rxjsEslint", "storybookEslint", "import_eslint_plugin", "nx"]
|
|
7
7
|
}
|
package/index.js
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
2
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
3
|
+
}) : x)(function(x) {
|
|
4
|
+
if (typeof require !== "undefined")
|
|
5
|
+
return require.apply(this, arguments);
|
|
6
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
7
|
+
});
|
|
8
|
+
|
|
1
9
|
// packages/lint-suite/src/lib/angular-template.ts
|
|
2
10
|
import nx from "@nx/eslint-plugin";
|
|
3
11
|
var angularTemplate = [
|
|
@@ -58,16 +66,58 @@ var angular = [
|
|
|
58
66
|
import nx3 from "@nx/eslint-plugin";
|
|
59
67
|
import importPlugin from "eslint-plugin-import";
|
|
60
68
|
import stylistic from "@stylistic/eslint-plugin";
|
|
69
|
+
import eslintConfigPrettier from "eslint-config-prettier/flat";
|
|
70
|
+
var packageExists = (name) => {
|
|
71
|
+
try {
|
|
72
|
+
__require.resolve(name);
|
|
73
|
+
return true;
|
|
74
|
+
} catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
var isPrettierAvailable = packageExists("prettier") && packageExists("eslint-config-prettier");
|
|
61
79
|
var base = [
|
|
62
80
|
...nx3.configs["flat/base"],
|
|
63
|
-
importPlugin.flatConfigs.recommended,
|
|
64
|
-
stylistic.configs.recommended,
|
|
65
81
|
{
|
|
66
|
-
files: [
|
|
67
|
-
|
|
82
|
+
files: [
|
|
83
|
+
"**/*.js",
|
|
84
|
+
"**/*.jsx",
|
|
85
|
+
"**/*.cjs",
|
|
86
|
+
"**/*.mjs",
|
|
87
|
+
"**/*.ts",
|
|
88
|
+
"**/*.tsx",
|
|
89
|
+
"**/*.cts",
|
|
90
|
+
"**/*.mts"
|
|
91
|
+
],
|
|
92
|
+
...importPlugin.flatConfigs.recommended
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
files: [
|
|
96
|
+
"**/*.js",
|
|
97
|
+
"**/*.jsx",
|
|
98
|
+
"**/*.cjs",
|
|
99
|
+
"**/*.mjs",
|
|
100
|
+
"**/*.ts",
|
|
101
|
+
"**/*.tsx",
|
|
102
|
+
"**/*.cts",
|
|
103
|
+
"**/*.mts"
|
|
104
|
+
],
|
|
105
|
+
...stylistic.configs.recommended
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
files: [
|
|
109
|
+
"**/*.js",
|
|
110
|
+
"**/*.jsx",
|
|
111
|
+
"**/*.cjs",
|
|
112
|
+
"**/*.mjs",
|
|
113
|
+
"**/*.ts",
|
|
114
|
+
"**/*.tsx",
|
|
115
|
+
"**/*.cts",
|
|
116
|
+
"**/*.mts"
|
|
117
|
+
],
|
|
68
118
|
rules: {
|
|
69
|
-
// 'import/namespace': 'off', //NOTE: CAN BE REMOVED WHEN IT DOESN'T CHECK FOR HTML
|
|
70
119
|
"no-console": "warn",
|
|
120
|
+
"class-methods-use-this": "error",
|
|
71
121
|
"max-len": [
|
|
72
122
|
"error",
|
|
73
123
|
{
|
|
@@ -75,14 +125,6 @@ var base = [
|
|
|
75
125
|
ignoreComments: true
|
|
76
126
|
}
|
|
77
127
|
],
|
|
78
|
-
"max-lines": [
|
|
79
|
-
"error",
|
|
80
|
-
{
|
|
81
|
-
max: 150,
|
|
82
|
-
skipBlankLines: true,
|
|
83
|
-
skipComments: true
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
128
|
"spaced-comment": [
|
|
87
129
|
2,
|
|
88
130
|
"always",
|
|
@@ -124,10 +166,46 @@ var base = [
|
|
|
124
166
|
memberSyntaxSortOrder: ["none", "all", "multiple", "single"],
|
|
125
167
|
allowSeparatedGroups: true
|
|
126
168
|
}
|
|
127
|
-
]
|
|
128
|
-
"class-methods-use-this": "error"
|
|
169
|
+
]
|
|
129
170
|
}
|
|
130
|
-
}
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
files: [
|
|
174
|
+
"**/*.js",
|
|
175
|
+
"**/*.jsx",
|
|
176
|
+
"**/*.cjs",
|
|
177
|
+
"**/*.mjs",
|
|
178
|
+
"**/*.ts",
|
|
179
|
+
"**/*.tsx",
|
|
180
|
+
"**/*.cts",
|
|
181
|
+
"**/*.mts",
|
|
182
|
+
"**/*.html"
|
|
183
|
+
],
|
|
184
|
+
rules: {
|
|
185
|
+
"max-lines": [
|
|
186
|
+
"error",
|
|
187
|
+
{
|
|
188
|
+
max: 150,
|
|
189
|
+
skipBlankLines: true,
|
|
190
|
+
skipComments: true
|
|
191
|
+
}
|
|
192
|
+
]
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
197
|
+
rules: {
|
|
198
|
+
"max-lines": [
|
|
199
|
+
"error",
|
|
200
|
+
{
|
|
201
|
+
max: 300,
|
|
202
|
+
skipBlankLines: true,
|
|
203
|
+
skipComments: true
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
isPrettierAvailable ? eslintConfigPrettier : {}
|
|
131
209
|
];
|
|
132
210
|
|
|
133
211
|
// packages/lint-suite/src/lib/typescript.ts
|
|
@@ -135,49 +213,38 @@ import nx4 from "@nx/eslint-plugin";
|
|
|
135
213
|
import importPlugin2 from "eslint-plugin-import";
|
|
136
214
|
var typescript = [
|
|
137
215
|
// NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'
|
|
138
|
-
...nx4.configs["flat/typescript"],
|
|
139
216
|
importPlugin2.flatConfigs.typescript,
|
|
217
|
+
...nx4.configs["flat/typescript"],
|
|
140
218
|
{
|
|
141
|
-
|
|
142
|
-
parserOptions: {
|
|
143
|
-
projectService: true
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
files: ["**/*.ts"],
|
|
219
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
149
220
|
rules: {
|
|
150
221
|
"@typescript-eslint/explicit-member-accessibility": "error",
|
|
151
222
|
"@typescript-eslint/consistent-type-imports": "error",
|
|
152
223
|
"@typescript-eslint/explicit-function-return-type": "warn",
|
|
153
|
-
"@typescript-eslint/prefer-readonly": "error",
|
|
154
224
|
"@typescript-eslint/no-empty-function": "error"
|
|
155
225
|
}
|
|
156
226
|
},
|
|
157
227
|
{
|
|
158
|
-
files: ["**/*.
|
|
228
|
+
files: ["**/*.ts", "**/*.tsx", "**/*.cts", "**/*.mts"],
|
|
229
|
+
languageOptions: {
|
|
230
|
+
parserOptions: {
|
|
231
|
+
projectService: true
|
|
232
|
+
}
|
|
233
|
+
},
|
|
159
234
|
rules: {
|
|
160
|
-
"
|
|
235
|
+
"@typescript-eslint/prefer-readonly": "error"
|
|
161
236
|
}
|
|
162
237
|
},
|
|
163
238
|
{
|
|
164
|
-
files: ["**/*.
|
|
239
|
+
files: ["**/*.action.ts"],
|
|
165
240
|
rules: {
|
|
166
|
-
"
|
|
241
|
+
"max-classes-per-file": "off"
|
|
167
242
|
}
|
|
168
243
|
},
|
|
169
244
|
{
|
|
170
|
-
files: ["**/*.
|
|
245
|
+
files: ["**/*.state.ts"],
|
|
171
246
|
rules: {
|
|
172
|
-
"
|
|
173
|
-
"max-lines": [
|
|
174
|
-
"error",
|
|
175
|
-
{
|
|
176
|
-
max: 300,
|
|
177
|
-
skipBlankLines: true,
|
|
178
|
-
skipComments: true
|
|
179
|
-
}
|
|
180
|
-
]
|
|
247
|
+
"class-methods-use-this": "off"
|
|
181
248
|
}
|
|
182
249
|
}
|
|
183
250
|
];
|
|
@@ -186,7 +253,7 @@ var typescript = [
|
|
|
186
253
|
import jestEslint from "eslint-plugin-jest";
|
|
187
254
|
var jest = [
|
|
188
255
|
{
|
|
189
|
-
files: ["**/*.spec.ts"],
|
|
256
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
190
257
|
...jestEslint.configs["flat/recommended"],
|
|
191
258
|
rules: {
|
|
192
259
|
...jestEslint.configs["flat/recommended"].rules,
|
|
@@ -208,10 +275,50 @@ var json = [
|
|
|
208
275
|
// packages/lint-suite/src/lib/rxjs.ts
|
|
209
276
|
import rxjsEslint from "@smarttools/eslint-plugin-rxjs";
|
|
210
277
|
var rxjs = [
|
|
211
|
-
rxjsEslint.configs.recommended,
|
|
212
278
|
{
|
|
213
|
-
files: [
|
|
214
|
-
|
|
279
|
+
files: [
|
|
280
|
+
"**/*.js",
|
|
281
|
+
"**/*.jsx",
|
|
282
|
+
"**/*.cjs",
|
|
283
|
+
"**/*.mjs",
|
|
284
|
+
"**/*.ts",
|
|
285
|
+
"**/*.tsx",
|
|
286
|
+
"**/*.cts",
|
|
287
|
+
"**/*.mts"
|
|
288
|
+
],
|
|
289
|
+
languageOptions: {
|
|
290
|
+
parserOptions: {
|
|
291
|
+
projectService: true
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
...rxjsEslint.configs.recommended
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
files: [
|
|
298
|
+
"**/*.js",
|
|
299
|
+
"**/*.jsx",
|
|
300
|
+
"**/*.cjs",
|
|
301
|
+
"**/*.mjs",
|
|
302
|
+
"**/*.ts",
|
|
303
|
+
"**/*.tsx",
|
|
304
|
+
"**/*.cts",
|
|
305
|
+
"**/*.mts"
|
|
306
|
+
],
|
|
307
|
+
plugins: {
|
|
308
|
+
rxjs: rxjsEslint
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
files: [
|
|
313
|
+
"**/*.js",
|
|
314
|
+
"**/*.jsx",
|
|
315
|
+
"**/*.cjs",
|
|
316
|
+
"**/*.mjs",
|
|
317
|
+
"**/*.ts",
|
|
318
|
+
"**/*.tsx",
|
|
319
|
+
"**/*.cts",
|
|
320
|
+
"**/*.mts"
|
|
321
|
+
],
|
|
215
322
|
rules: {
|
|
216
323
|
"rxjs/prefer-observer": "error",
|
|
217
324
|
"rxjs/finnish": "warn",
|
|
@@ -226,7 +333,7 @@ var rxjs = [
|
|
|
226
333
|
}
|
|
227
334
|
},
|
|
228
335
|
{
|
|
229
|
-
files: ["**/*.spec.ts"],
|
|
336
|
+
files: ["**/*.spec.ts", "**/*.test.ts", "**/*.spec.js", "**/*.test.js"],
|
|
230
337
|
rules: {
|
|
231
338
|
"rxjs/no-ignored-subscription": "off"
|
|
232
339
|
}
|
package/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../packages/lint-suite/src/lib/angular-template.ts", "../../../../packages/lint-suite/src/lib/angular.ts", "../../../../packages/lint-suite/src/lib/base.ts", "../../../../packages/lint-suite/src/lib/typescript.ts", "../../../../packages/lint-suite/src/lib/jest.ts", "../../../../packages/lint-suite/src/lib/json.ts", "../../../../packages/lint-suite/src/lib/rxjs.ts", "../../../../packages/lint-suite/src/lib/storybook.ts", "../../../../packages/lint-suite/src/lib/javascript.ts"],
|
|
4
|
-
"sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n importPlugin.flatConfigs.recommended,\r\n
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["nx", "nx", "nx", "importPlugin", "nx"]
|
|
4
|
+
"sourcesContent": ["import nx from '@nx/eslint-plugin';\r\n\r\nexport const angularTemplate = [\r\n ...nx.configs['flat/angular-template'],\r\n {\r\n files: ['**/*.html'],\r\n rules: {\r\n '@angular-eslint/template/button-has-type': 'error',\r\n '@angular-eslint/template/no-positive-tabindex': 'error',\r\n '@angular-eslint/template/valid-aria': 'error',\r\n '@angular-eslint/template/alt-text': 'error',\r\n '@angular-eslint/template/elements-content': 'error',\r\n '@angular-eslint/template/click-events-have-key-events': 'error',\r\n '@angular-eslint/template/mouse-events-have-key-events': 'error',\r\n '@angular-eslint/template/table-scope': 'error',\r\n '@angular-eslint/template/no-autofocus': 'error',\r\n '@angular-eslint/template/no-distracting-elements': 'error',\r\n '@angular-eslint/template/prefer-control-flow': 'error',\r\n '@angular-eslint/template/prefer-self-closing-tags': 'error',\r\n '@angular-eslint/template/prefer-ngsrc': 'error',\r\n '@angular-eslint/template/attributes-order': [\r\n 'error',\r\n {\r\n alphabetical: true,\r\n order: [\r\n 'STRUCTURAL_DIRECTIVE', // e.g. `*ngIf=\"true\"`, `*ngFor=\"let item of items\"`\r\n 'TEMPLATE_REFERENCE', // e.g. `<input #inputRef>`\r\n 'INPUT_BINDING', // e.g. `[id]=\"3\"`, `[attr.colspan]=\"colspan\"`, [style.width.%]=\"100\", [@triggerName]=\"expression\", `bind-id=\"handleChange()\"`\r\n 'TWO_WAY_BINDING', // e.g. `[(id)]=\"id\"`, `bindon-id=\"id\"\r\n 'ATTRIBUTE_BINDING', // e.g. `<input required>`, `id=\"3\"`\r\n 'OUTPUT_BINDING', // e.g. `(idChange)=\"handleChange()\"`, `on-id=\"handleChange()\"`\r\n ],\r\n },\r\n ],\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const angular = [\r\n ...nx.configs['flat/angular'],\r\n {\r\n files: ['**/*.ts'],\r\n rules: {\r\n '@angular-eslint/prefer-on-push-component-change-detection': 'error',\r\n },\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\nimport stylistic from '@stylistic/eslint-plugin';\r\nimport eslintConfigPrettier from 'eslint-config-prettier/flat';\r\n\r\nimport type { Linter } from 'eslint';\r\n\r\nconst packageExists = (name: string): boolean => {\r\n try {\r\n require.resolve(name);\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst isPrettierAvailable =\r\n packageExists('prettier') && packageExists('eslint-config-prettier');\r\n\r\nexport const base: Linter.Config[] = [\r\n ...nx.configs['flat/base'],\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...importPlugin.flatConfigs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n ...stylistic.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'no-console': 'warn',\r\n 'class-methods-use-this': 'error',\r\n 'max-len': [\r\n 'error',\r\n {\r\n code: 135,\r\n ignoreComments: true,\r\n },\r\n ],\r\n 'spaced-comment': [\r\n 2,\r\n 'always',\r\n {\r\n block: {\r\n exceptions: ['*'],\r\n },\r\n },\r\n ],\r\n '@stylistic/comma-dangle': [\r\n 'error',\r\n {\r\n functions: 'never',\r\n arrays: 'always-multiline',\r\n exports: 'always-multiline',\r\n imports: 'always-multiline',\r\n objects: 'always-multiline',\r\n enums: 'always-multiline',\r\n },\r\n ],\r\n '@stylistic/indent': [\r\n 'error',\r\n 2,\r\n {\r\n offsetTernaryExpressions: true,\r\n SwitchCase: 1,\r\n ignoredNodes: [\r\n 'TSTypeParameterInstantiation',\r\n 'FunctionExpression > .params > :matches(Decorator, :not(:first-child))',\r\n ],\r\n },\r\n ],\r\n 'sort-imports': [\r\n 'error',\r\n {\r\n ignoreCase: false,\r\n ignoreDeclarationSort: true,\r\n ignoreMemberSort: false,\r\n memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],\r\n allowSeparatedGroups: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n '**/*.html',\r\n ],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 150,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'max-lines': [\r\n 'error',\r\n {\r\n max: 300,\r\n skipBlankLines: true,\r\n skipComments: true,\r\n },\r\n ],\r\n },\r\n },\r\n isPrettierAvailable ? eslintConfigPrettier : {},\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\nimport importPlugin from 'eslint-plugin-import';\r\n\r\nexport const typescript = [\r\n // NOTE: Checks for 'prettier' and 'eslint-plugin-prettier'\r\n importPlugin.flatConfigs.typescript,\r\n ...nx.configs['flat/typescript'],\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n rules: {\r\n '@typescript-eslint/explicit-member-accessibility': 'error',\r\n '@typescript-eslint/consistent-type-imports': 'error',\r\n '@typescript-eslint/explicit-function-return-type': 'warn',\r\n '@typescript-eslint/no-empty-function': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.ts', '**/*.tsx', '**/*.cts', '**/*.mts'],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n rules: {\r\n '@typescript-eslint/prefer-readonly': 'error',\r\n },\r\n },\r\n {\r\n files: ['**/*.action.ts'],\r\n rules: {\r\n 'max-classes-per-file': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.state.ts'],\r\n rules: {\r\n 'class-methods-use-this': 'off',\r\n },\r\n },\r\n];\r\n", "import jestEslint from 'eslint-plugin-jest';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const jest: Linter.Config[] = [\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n ...jestEslint.configs['flat/recommended'],\r\n rules: {\r\n ...jestEslint.configs['flat/recommended'].rules,\r\n ...jestEslint.configs['flat/style'].rules,\r\n 'jest/no-done-callback': 'off',\r\n },\r\n },\r\n];\r\n", "import jsonEslint from 'eslint-plugin-json';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const json: Linter.Config[] = [\r\n {\r\n files: ['**/*.json'],\r\n ...jsonEslint.configs.recommended,\r\n },\r\n];\r\n", "import rxjsEslint from '@smarttools/eslint-plugin-rxjs';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const rxjs: Linter.Config[] = [\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n languageOptions: {\r\n parserOptions: {\r\n projectService: true,\r\n },\r\n },\r\n ...rxjsEslint.configs.recommended,\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n plugins: {\r\n rxjs: rxjsEslint,\r\n },\r\n },\r\n {\r\n files: [\r\n '**/*.js',\r\n '**/*.jsx',\r\n '**/*.cjs',\r\n '**/*.mjs',\r\n '**/*.ts',\r\n '**/*.tsx',\r\n '**/*.cts',\r\n '**/*.mts',\r\n ],\r\n rules: {\r\n 'rxjs/prefer-observer': 'error',\r\n 'rxjs/finnish': 'warn',\r\n 'rxjs/no-ignored-error': 'warn',\r\n 'rxjs/no-unsafe-switchmap': 'error',\r\n 'rxjs/no-unsafe-takeuntil': 'error',\r\n 'rxjs/no-unsafe-catch': 'error',\r\n 'rxjs/no-unsafe-first': 'error',\r\n 'rxjs/no-topromise': 'error',\r\n 'rxjs/throw-error': 'error',\r\n 'rxjs/no-async-subscribe': 'off',\r\n },\r\n },\r\n {\r\n files: ['**/*.spec.ts', '**/*.test.ts', '**/*.spec.js', '**/*.test.js'],\r\n rules: {\r\n 'rxjs/no-ignored-subscription': 'off',\r\n },\r\n },\r\n];\r\n", "import storybookEslint from 'eslint-plugin-storybook';\r\nimport type { Linter } from 'eslint';\r\n\r\nexport const storybook: Linter.Config[] = [\r\n ...storybookEslint.configs['flat/recommended'],\r\n {\r\n ignores: ['!.storybook'],\r\n files: ['**/*.stories.ts'],\r\n },\r\n];\r\n", "import nx from '@nx/eslint-plugin';\r\n\r\nexport const javascript = [...nx.configs['flat/javascript']];\r\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["nx", "nx", "nx", "nx", "importPlugin", "nx"]
|
|
7
7
|
}
|
package/lib/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/base.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAcrC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAkI/B,CAAC"}
|
package/lib/rxjs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"rxjs.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/rxjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAgE/B,CAAC"}
|
package/lib/typescript.d.ts
CHANGED
|
@@ -4,55 +4,51 @@ export declare const typescript: (import("@typescript-eslint/utils/ts-eslint").F
|
|
|
4
4
|
'@typescript-eslint/explicit-member-accessibility': string;
|
|
5
5
|
'@typescript-eslint/consistent-type-imports': string;
|
|
6
6
|
'@typescript-eslint/explicit-function-return-type': string;
|
|
7
|
-
'@typescript-eslint/prefer-readonly': string;
|
|
8
7
|
'@typescript-eslint/no-empty-function': string;
|
|
8
|
+
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
9
9
|
'max-classes-per-file'?: undefined;
|
|
10
10
|
'class-methods-use-this'?: undefined;
|
|
11
|
-
'@typescript-eslint/dot-notation'?: undefined;
|
|
12
|
-
'max-lines'?: undefined;
|
|
13
11
|
};
|
|
12
|
+
languageOptions?: undefined;
|
|
14
13
|
} | {
|
|
15
14
|
files: string[];
|
|
15
|
+
languageOptions: {
|
|
16
|
+
parserOptions: {
|
|
17
|
+
projectService: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
16
20
|
rules: {
|
|
17
|
-
'
|
|
21
|
+
'@typescript-eslint/prefer-readonly': string;
|
|
18
22
|
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
19
23
|
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
20
24
|
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
21
|
-
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
22
25
|
'@typescript-eslint/no-empty-function'?: undefined;
|
|
26
|
+
'max-classes-per-file'?: undefined;
|
|
23
27
|
'class-methods-use-this'?: undefined;
|
|
24
|
-
'@typescript-eslint/dot-notation'?: undefined;
|
|
25
|
-
'max-lines'?: undefined;
|
|
26
28
|
};
|
|
27
29
|
} | {
|
|
28
30
|
files: string[];
|
|
29
31
|
rules: {
|
|
30
|
-
'
|
|
32
|
+
'max-classes-per-file': string;
|
|
31
33
|
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
32
34
|
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
33
35
|
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
34
|
-
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
35
36
|
'@typescript-eslint/no-empty-function'?: undefined;
|
|
36
|
-
'
|
|
37
|
-
'
|
|
38
|
-
'max-lines'?: undefined;
|
|
37
|
+
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
38
|
+
'class-methods-use-this'?: undefined;
|
|
39
39
|
};
|
|
40
|
+
languageOptions?: undefined;
|
|
40
41
|
} | {
|
|
41
42
|
files: string[];
|
|
42
43
|
rules: {
|
|
43
|
-
'
|
|
44
|
-
'max-lines': (string | {
|
|
45
|
-
max: number;
|
|
46
|
-
skipBlankLines: boolean;
|
|
47
|
-
skipComments: boolean;
|
|
48
|
-
})[];
|
|
44
|
+
'class-methods-use-this': string;
|
|
49
45
|
'@typescript-eslint/explicit-member-accessibility'?: undefined;
|
|
50
46
|
'@typescript-eslint/consistent-type-imports'?: undefined;
|
|
51
47
|
'@typescript-eslint/explicit-function-return-type'?: undefined;
|
|
52
|
-
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
53
48
|
'@typescript-eslint/no-empty-function'?: undefined;
|
|
49
|
+
'@typescript-eslint/prefer-readonly'?: undefined;
|
|
54
50
|
'max-classes-per-file'?: undefined;
|
|
55
|
-
'class-methods-use-this'?: undefined;
|
|
56
51
|
};
|
|
52
|
+
languageOptions?: undefined;
|
|
57
53
|
})[];
|
|
58
54
|
//# sourceMappingURL=typescript.d.ts.map
|
package/lib/typescript.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../../../../../packages/lint-suite/src/lib/typescript.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoCtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lint-suite",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "Reusable ESLint configurations",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,13 +25,22 @@
|
|
|
25
25
|
"types": "./index.d.ts",
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"eslint": "^9.23.0",
|
|
28
|
-
"@nx/eslint-plugin": "^20.
|
|
28
|
+
"@nx/eslint-plugin": "^20.7.0",
|
|
29
29
|
"eslint-plugin-jest": "^28.11.0",
|
|
30
30
|
"eslint-plugin-json": "^4.0.1",
|
|
31
31
|
"@smarttools/eslint-plugin-rxjs": "^1.0.18",
|
|
32
32
|
"eslint-plugin-storybook": "^0.12.0",
|
|
33
33
|
"eslint-plugin-import": "^2.31.0",
|
|
34
|
-
"@stylistic/eslint-plugin": "^4.2.0"
|
|
34
|
+
"@stylistic/eslint-plugin": "^4.2.0",
|
|
35
|
+
"eslint-config-prettier": "^10.1.1"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"eslint-config-prettier": "^10.1.1"
|
|
39
|
+
},
|
|
40
|
+
"peerDependenciesMeta": {
|
|
41
|
+
"eslint-config-prettier": {
|
|
42
|
+
"optional": true
|
|
43
|
+
}
|
|
35
44
|
},
|
|
36
45
|
"scripts": {
|
|
37
46
|
"build": "nx build lint-suite",
|