feat(lint): Add --max-warnings -1 option to package lint

Signed-off-by: Tommi Pääkkö <tommi.paakko@op.fi>
This commit is contained in:
Tommi Pääkkö
2024-11-04 16:13:13 +02:00
parent 302d47383e
commit 6c48ebdf59
5 changed files with 23 additions and 10 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/cli': patch
---
Add `--max-warnings -1` support to `backstage-cli package lint`
+8 -5
View File
@@ -92,9 +92,11 @@ Usage: backstage-cli repo lint [options]
Lint all packages in the project
Options:
--format <format> Lint report output format (default: "eslint-formatter-friendly")
--since <ref> Only lint packages that changed since the specified ref
--fix Attempt to automatically fix violations
--format <format> Lint report output format (default: "eslint-formatter-friendly")
--since <ref> Only lint packages that changed since the specified ref
--successCache Enable success caching, which skips running tests for unchanged packages that were successful in the previous run
--successCacheDir <path> Set the success cache location, (default: node_modules/.cache/backstage-cli)
--fix Attempt to automatically fix violations
```
## repo test
@@ -185,8 +187,9 @@ Usage: backstage-cli package lint [options]
Lint a package
Options:
--format <format> Lint report output format (default: "eslint-formatter-friendly")
--fix Attempt to automatically fix violations
--format <format> Lint report output format (default: "eslint-formatter-friendly")
--fix Attempt to automatically fix violations
--max-warnings <number> Fail if more than this number of warnings. -1 allows warnings. (default: 0)
```
## package test
+1 -1
View File
@@ -175,7 +175,7 @@ export function registerScriptCommand(program: Command) {
.option('--fix', 'Attempt to automatically fix violations')
.option(
'--max-warnings <number>',
'Fail if more than this number of warnings (default: 0)',
'Fail if more than this number of warnings. -1 allows warnings. (default: 0)',
)
.description('Lint a package')
.action(lazy(() => import('./lint').then(m => m.default)));
+4 -2
View File
@@ -30,11 +30,13 @@ export default async (directories: string[], opts: OptionValues) => {
);
const maxWarnings = opts.maxWarnings ?? 0;
const ignoreWarnings = +maxWarnings === -1;
const failed =
results.some(r => r.errorCount > 0) ||
results.reduce((current, next) => current + next.warningCount, 0) >
maxWarnings;
(!ignoreWarnings &&
results.reduce((current, next) => current + next.warningCount, 0) >
maxWarnings);
if (opts.fix) {
await ESLint.outputFixes(results);
+5 -2
View File
@@ -199,11 +199,14 @@ export async function command(opts: OptionValues, cmd: Command): Promise<void> {
}
const maxWarnings = lintOptions?.maxWarnings ?? 0;
const ignoreWarnings = +maxWarnings === -1;
const resultText = formatter.format(results) as string;
const failed =
results.some(r => r.errorCount > 0) ||
results.reduce((current, next) => current + next.warningCount, 0) >
maxWarnings;
(!ignoreWarnings &&
results.reduce((current, next) => current + next.warningCount, 0) >
maxWarnings);
return {
relativeDir,