@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.8",
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.8",
39
- "@nx/js": "20.0.8",
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' && p !== '@nrwl/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:@nrwl/nx/typescript' &&
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', '@nrwl/linter:eslint', '@nx/linter:eslint'].includes(targetConfig.executor) ||
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)), input.length > 1 // multiline only if more than one item
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 // multiline only if more than one property
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') {