@nx/eslint 20.0.0-beta.2 → 20.0.0-beta.4
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/eslint",
|
3
|
-
"version": "20.0.0-beta.
|
3
|
+
"version": "20.0.0-beta.4",
|
4
4
|
"private": false,
|
5
5
|
"description": "The ESLint plugin for Nx contains executors, generators and utilities used for linting JavaScript/TypeScript projects within an Nx workspace.",
|
6
6
|
"repository": {
|
@@ -35,12 +35,12 @@
|
|
35
35
|
"eslint": "^8.0.0 || ^9.0.0"
|
36
36
|
},
|
37
37
|
"dependencies": {
|
38
|
-
"@nx/devkit": "20.0.0-beta.
|
39
|
-
"@nx/js": "20.0.0-beta.
|
38
|
+
"@nx/devkit": "20.0.0-beta.4",
|
39
|
+
"@nx/js": "20.0.0-beta.4",
|
40
40
|
"semver": "^7.5.3",
|
41
41
|
"tslib": "^2.3.0",
|
42
42
|
"typescript": "~5.4.2",
|
43
|
-
"@nx/linter": "20.0.0-beta.
|
43
|
+
"@nx/linter": "20.0.0-beta.4"
|
44
44
|
},
|
45
45
|
"peerDependenciesMeta": {
|
46
46
|
"@zkochan/js-yaml": {
|
@@ -85,6 +85,7 @@ const getGlobalFlatEslintConfiguration = (rootProject) => {
|
|
85
85
|
content = (0, ast_utils_1.addBlockToFlatConfigExport)(content, (0, ast_utils_1.generateFlatPredefinedConfig)('flat/base'), { insertAtTheEnd: false });
|
86
86
|
content = (0, ast_utils_1.addBlockToFlatConfigExport)(content, (0, ast_utils_1.generateFlatPredefinedConfig)('flat/typescript'));
|
87
87
|
content = (0, ast_utils_1.addBlockToFlatConfigExport)(content, (0, ast_utils_1.generateFlatPredefinedConfig)('flat/javascript'));
|
88
|
+
content = (0, ast_utils_1.addBlockToFlatConfigExport)(content, (0, ast_utils_1.generateFlatOverride)({ ignores: ['**/dist'] }));
|
88
89
|
if (!rootProject) {
|
89
90
|
content = (0, ast_utils_1.addBlockToFlatConfigExport)(content, (0, ast_utils_1.generateFlatOverride)({
|
90
91
|
files: ['*.ts', '*.tsx', '*.js', '*.jsx'],
|
@@ -49,6 +49,7 @@ async function lintProjectGeneratorInternal(tree, options) {
|
|
49
49
|
if (lintFilePatterns &&
|
50
50
|
lintFilePatterns.length &&
|
51
51
|
lintFilePatterns.some((p) => !['./src', '{projectRoot}', projectConfig.root].includes(p))) {
|
52
|
+
projectConfig.targets ??= {};
|
52
53
|
projectConfig.targets['lint'] = {
|
53
54
|
command: `eslint ${lintFilePatterns
|
54
55
|
.join(' ')
|
@@ -57,6 +58,7 @@ async function lintProjectGeneratorInternal(tree, options) {
|
|
57
58
|
}
|
58
59
|
}
|
59
60
|
else {
|
61
|
+
projectConfig.targets ??= {};
|
60
62
|
projectConfig.targets['lint'] = {
|
61
63
|
executor: '@nx/eslint:lint',
|
62
64
|
};
|
@@ -62,9 +62,11 @@ export declare function overrideNeedsCompat(override: Partial<Linter.ConfigOverr
|
|
62
62
|
* Generates an AST object or spread element representing a modern flat config entry,
|
63
63
|
* based on a given legacy eslintrc JSON override object
|
64
64
|
*/
|
65
|
-
export declare function generateFlatOverride(_override: Partial<Linter.ConfigOverride<Linter.RulesRecord>>
|
65
|
+
export declare function generateFlatOverride(_override: Partial<Linter.ConfigOverride<Linter.RulesRecord>> & {
|
66
|
+
ignores?: Linter.FlatConfig['ignores'];
|
67
|
+
}): ts.ObjectLiteralExpression | ts.SpreadElement;
|
66
68
|
export declare function generateFlatPredefinedConfig(predefinedConfigName: string, moduleName?: string, spread?: boolean): ts.ObjectLiteralExpression | ts.SpreadElement | ts.ElementAccessExpression;
|
67
|
-
export declare function mapFilePaths
|
69
|
+
export declare function mapFilePaths<T extends Partial<Linter.ConfigOverride<Linter.RulesRecord>>>(_override: T): T;
|
68
70
|
/**
|
69
71
|
* Generates an AST from a JSON-type input
|
70
72
|
*/
|
@@ -148,12 +148,16 @@ function replaceOverride(content, root, lookup, update) {
|
|
148
148
|
changes.push({
|
149
149
|
type: devkit_1.ChangeType.Insert,
|
150
150
|
index: start,
|
151
|
-
|
152
|
-
|
153
|
-
.
|
154
|
-
|
155
|
-
|
156
|
-
|
151
|
+
// NOTE: Indentation added to format without formatting tools like Prettier.
|
152
|
+
text: ' ' +
|
153
|
+
JSON.stringify(updatedData, null, 2)
|
154
|
+
// restore any parser require calls that were stripped during JSON parsing
|
155
|
+
.replace(/"parser": "([^"]+)"/g, (_, parser) => {
|
156
|
+
return `"parser": require('${parser}')`;
|
157
|
+
})
|
158
|
+
.slice(2, -2) // remove curly braces and start/end line breaks since we are injecting just properties
|
159
|
+
// Append indentation so file is formatted without Prettier
|
160
|
+
.replaceAll(/\n/g, '\n '),
|
157
161
|
});
|
158
162
|
}
|
159
163
|
}
|
@@ -282,7 +286,10 @@ function addBlockToFlatConfigExport(content, config, options = {
|
|
282
286
|
// base config was not generated by Nx.
|
283
287
|
if (!exportsArray)
|
284
288
|
return content;
|
285
|
-
const insert =
|
289
|
+
const insert = ' ' +
|
290
|
+
printer
|
291
|
+
.printNode(ts.EmitHint.Expression, config, source)
|
292
|
+
.replaceAll(/\n/g, '\n ');
|
286
293
|
if (options.insertAtTheEnd) {
|
287
294
|
const index = exportsArray.length > 0
|
288
295
|
? exportsArray.at(exportsArray.length - 1).end
|
@@ -301,7 +308,7 @@ function addBlockToFlatConfigExport(content, config, options = {
|
|
301
308
|
{
|
302
309
|
type: devkit_1.ChangeType.Insert,
|
303
310
|
index,
|
304
|
-
text: `\n${insert}
|
311
|
+
text: `\n${insert},\n`,
|
305
312
|
},
|
306
313
|
]);
|
307
314
|
}
|
@@ -608,6 +615,9 @@ function generateFlatOverride(_override) {
|
|
608
615
|
const flatConfigOverride = {
|
609
616
|
files,
|
610
617
|
};
|
618
|
+
if (override.ignores) {
|
619
|
+
flatConfigOverride.ignores = override.ignores;
|
620
|
+
}
|
611
621
|
if (override.rules) {
|
612
622
|
flatConfigOverride.rules = override.rules;
|
613
623
|
}
|