From bb878aa03352ea7c33458b5d0e015f99b088930c Mon Sep 17 00:00:00 2001 From: Dmitry Zakharov Date: Tue, 5 Nov 2024 00:15:59 +0300 Subject: [PATCH] feat(linter): add support eslint 9 --quiet param (#28743) closes #28291 ## Current Behavior eslint 9 support --quiet param for not run warn rules, but nx not pass that param directly ## Expected Behavior nx executor should pass --quiet directly to eslint ## Related Issue(s) Fixes #28291 --- .../eslint/src/executors/lint/utility/eslint-utils.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/eslint/src/executors/lint/utility/eslint-utils.ts b/packages/eslint/src/executors/lint/utility/eslint-utils.ts index 5a78a15f01..9546723162 100644 --- a/packages/eslint/src/executors/lint/utility/eslint-utils.ts +++ b/packages/eslint/src/executors/lint/utility/eslint-utils.ts @@ -1,4 +1,5 @@ import type { ESLint } from 'eslint'; +import { gte } from 'semver'; import { isFlatConfig } from '../../../utils/config-file'; import { resolveESLintClass } from '../../../utils/resolve-eslint-class'; import type { Schema } from '../schema'; @@ -18,7 +19,8 @@ export async function resolveAndInstantiateESLint( useFlatConfigOverrideVal: useFlatConfig, }); - const eslintOptions: ESLint.Options = { + // ruleFilter exist only in eslint 9+, remove this type when eslint 8 support dropped + const eslintOptions: ESLint.Options & { ruleFilter?: Function } = { overrideConfigFile: eslintConfigPath, fix: !!options.fix, cache: !!options.cache, @@ -72,6 +74,11 @@ export async function resolveAndInstantiateESLint( options.reportUnusedDisableDirectives || undefined; } + // pass --quiet to eslint 9+ directly: filter only errors + if (options.quiet && gte(ESLint.version, '9.0.0')) { + eslintOptions.ruleFilter = (rule) => rule.severity === 2; + } + const eslint = new ESLint(eslintOptions); return {