@nx/eslint 20.0.8 → 20.1.0-beta.0
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
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/eslint",
|
3
|
-
"version": "20.0.
|
3
|
+
"version": "20.1.0-beta.0",
|
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,8 +35,8 @@
|
|
35
35
|
"eslint": "^8.0.0 || ^9.0.0"
|
36
36
|
},
|
37
37
|
"dependencies": {
|
38
|
-
"@nx/devkit": "20.0.
|
39
|
-
"@nx/js": "20.0.
|
38
|
+
"@nx/devkit": "20.1.0-beta.0",
|
39
|
+
"@nx/js": "20.1.0-beta.0",
|
40
40
|
"semver": "^7.5.3",
|
41
41
|
"tslib": "^2.3.0",
|
42
42
|
"typescript": "~5.4.2"
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.resolveAndInstantiateESLint = resolveAndInstantiateESLint;
|
4
|
+
const semver_1 = require("semver");
|
4
5
|
const config_file_1 = require("../../../utils/config-file");
|
5
6
|
const resolve_eslint_class_1 = require("../../../utils/resolve-eslint-class");
|
6
7
|
async function resolveAndInstantiateESLint(eslintConfigPath, options, useFlatConfig = false) {
|
@@ -12,6 +13,7 @@ async function resolveAndInstantiateESLint(eslintConfigPath, options, useFlatCon
|
|
12
13
|
const ESLint = await (0, resolve_eslint_class_1.resolveESLintClass)({
|
13
14
|
useFlatConfigOverrideVal: useFlatConfig,
|
14
15
|
});
|
16
|
+
// ruleFilter exist only in eslint 9+, remove this type when eslint 8 support dropped
|
15
17
|
const eslintOptions = {
|
16
18
|
overrideConfigFile: eslintConfigPath,
|
17
19
|
fix: !!options.fix,
|
@@ -57,6 +59,10 @@ async function resolveAndInstantiateESLint(eslintConfigPath, options, useFlatCon
|
|
57
59
|
eslintOptions.reportUnusedDisableDirectives =
|
58
60
|
options.reportUnusedDisableDirectives || undefined;
|
59
61
|
}
|
62
|
+
// pass --quiet to eslint 9+ directly: filter only errors
|
63
|
+
if (options.quiet && (0, semver_1.gte)(ESLint.version, '9.0.0')) {
|
64
|
+
eslintOptions.ruleFilter = (rule) => rule.severity === 2;
|
65
|
+
}
|
60
66
|
const eslint = new ESLint(eslintOptions);
|
61
67
|
return {
|
62
68
|
ESLint,
|
@@ -71,8 +71,7 @@ function migrateConfigToMonorepoStyle(projects, tree, unitTestRunner, keepExisti
|
|
71
71
|
}
|
72
72
|
function findLintTarget(project) {
|
73
73
|
return Object.values(project.targets ?? {}).find((target) => target.executor === '@nx/eslint:lint' ||
|
74
|
-
target.executor === '@nx/linter:eslint'
|
75
|
-
target.executor === '@nrwl/linter:eslint');
|
74
|
+
target.executor === '@nx/linter:eslint');
|
76
75
|
}
|
77
76
|
function migrateEslintFile(projectEslintPath, tree) {
|
78
77
|
const baseFile = (0, eslint_file_1.findEslintFile)(tree);
|
@@ -88,8 +87,6 @@ function migrateEslintFile(projectEslintPath, tree) {
|
|
88
87
|
config = (0, ast_utils_1.removeCompatExtends)(config, [
|
89
88
|
'plugin:@nx/typescript',
|
90
89
|
'plugin:@nx/javascript',
|
91
|
-
'plugin:@nrwl/typescript',
|
92
|
-
'plugin:@nrwl/javascript',
|
93
90
|
]);
|
94
91
|
config = (0, ast_utils_1.removePredefinedConfigs)(config, '@nx/eslint-plugin', 'nx', [
|
95
92
|
'flat/base',
|
@@ -104,7 +101,7 @@ function migrateEslintFile(projectEslintPath, tree) {
|
|
104
101
|
delete json.root;
|
105
102
|
// remove nrwl/nx plugins
|
106
103
|
if (json.plugins) {
|
107
|
-
json.plugins = json.plugins.filter((p) => p !== '@nx'
|
104
|
+
json.plugins = json.plugins.filter((p) => p !== '@nx');
|
108
105
|
if (json.plugins.length === 0) {
|
109
106
|
delete json.plugins;
|
110
107
|
}
|
@@ -124,9 +121,7 @@ function migrateEslintFile(projectEslintPath, tree) {
|
|
124
121
|
json.overrides.forEach((override) => {
|
125
122
|
if (override.extends) {
|
126
123
|
override.extends = override.extends.filter((ext) => ext !== 'plugin:@nx/typescript' &&
|
127
|
-
ext !== 'plugin:@
|
128
|
-
ext !== 'plugin:@nx/javascript' &&
|
129
|
-
ext !== 'plugin:@nrwl/nx/javascript');
|
124
|
+
ext !== 'plugin:@nx/javascript');
|
130
125
|
if (override.extends.length === 0) {
|
131
126
|
delete override.extends;
|
132
127
|
}
|
@@ -224,7 +224,7 @@ function isMigrationToMonorepoNeeded(tree, graph) {
|
|
224
224
|
return false;
|
225
225
|
}
|
226
226
|
for (const targetConfig of Object.values(rootProject.data.targets ?? {})) {
|
227
|
-
if (['@nx/eslint:lint', '@
|
227
|
+
if (['@nx/eslint:lint', '@nx/linter:eslint'].includes(targetConfig.executor) ||
|
228
228
|
(targetConfig.executor === 'nx:run-commands' &&
|
229
229
|
targetConfig.options?.command &&
|
230
230
|
targetConfig.options?.command.startsWith('eslint '))) {
|
@@ -729,14 +729,14 @@ function addTSObjectProperty(elements, key, value) {
|
|
729
729
|
*/
|
730
730
|
function generateAst(input, propertyAssignmentReplacer) {
|
731
731
|
if (Array.isArray(input)) {
|
732
|
-
return ts.factory.createArrayLiteralExpression(input.map((item) => generateAst(item, propertyAssignmentReplacer)),
|
732
|
+
return ts.factory.createArrayLiteralExpression(input.map((item) => generateAst(item, propertyAssignmentReplacer)), true // Always treat as multiline, using item.length does not work in all cases
|
733
733
|
);
|
734
734
|
}
|
735
735
|
if (input === null) {
|
736
736
|
return ts.factory.createNull();
|
737
737
|
}
|
738
738
|
if (typeof input === 'object') {
|
739
|
-
return ts.factory.createObjectLiteralExpression(generatePropertyAssignmentsFromObjectEntries(input, propertyAssignmentReplacer), Object.keys(input).length > 1
|
739
|
+
return ts.factory.createObjectLiteralExpression(generatePropertyAssignmentsFromObjectEntries(input, propertyAssignmentReplacer), true // Always treat as multiline, using Object.keys(input).length > 1 does not work in all cases
|
740
740
|
);
|
741
741
|
}
|
742
742
|
if (typeof input === 'string') {
|