feat(lint): Add checked files list to the JSON output(#26936)

Fixes #26930
This commit is contained in:
Keith Tan 2024-11-20 20:59:43 +01:00 committed by GitHub
parent 03f47e6cf0
commit 8f72798622
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 31 additions and 2 deletions

View File

@ -175,6 +175,7 @@ struct JsonLintReporter {
version: u8, version: u8,
diagnostics: Vec<JsonLintDiagnostic>, diagnostics: Vec<JsonLintDiagnostic>,
errors: Vec<LintError>, errors: Vec<LintError>,
checked_files: Vec<String>,
} }
impl JsonLintReporter { impl JsonLintReporter {
@ -183,6 +184,7 @@ impl JsonLintReporter {
version: JSON_SCHEMA_VERSION, version: JSON_SCHEMA_VERSION,
diagnostics: Vec::new(), diagnostics: Vec::new(),
errors: Vec::new(), errors: Vec::new(),
checked_files: Vec::new(),
} }
} }
} }
@ -209,6 +211,17 @@ impl LintReporter for JsonLintReporter {
code: d.code().to_string(), code: d.code().to_string(),
hint: d.hint().map(|h| h.to_string()), hint: d.hint().map(|h| h.to_string()),
}); });
let file_path = d
.specifier
.to_file_path()
.unwrap()
.to_string_lossy()
.to_string();
if !self.checked_files.contains(&file_path) {
self.checked_files.push(file_path);
}
} }
fn visit_error(&mut self, file_path: &str, err: &AnyError) { fn visit_error(&mut self, file_path: &str, err: &AnyError) {
@ -216,10 +229,15 @@ impl LintReporter for JsonLintReporter {
file_path: file_path.to_string(), file_path: file_path.to_string(),
message: err.to_string(), message: err.to_string(),
}); });
if !self.checked_files.contains(&file_path.to_string()) {
self.checked_files.push(file_path.to_string());
}
} }
fn close(&mut self, _check_count: usize) { fn close(&mut self, _check_count: usize) {
sort_diagnostics(&mut self.diagnostics); sort_diagnostics(&mut self.diagnostics);
self.checked_files.sort();
let json = serde_json::to_string_pretty(&self); let json = serde_json::to_string_pretty(&self);
#[allow(clippy::print_stdout)] #[allow(clippy::print_stdout)]
{ {

View File

@ -61,5 +61,10 @@
"file_path": "[WILDCARD]malformed.js", "file_path": "[WILDCARD]malformed.js",
"message": "Expected '{', got 'B' at [WILDCARD]malformed.js:4:16\n\n export class A B C\n ~" "message": "Expected '{', got 'B' at [WILDCARD]malformed.js:4:16\n\n export class A B C\n ~"
} }
],
"checked_files": [
"[WILDCARD]file1.js",
"[WILDCARD]file2.ts",
"[WILDCARD]malformed.js"
] ]
} }

View File

@ -20,5 +20,8 @@
"hint": [WILDCARD] "hint": [WILDCARD]
} }
], ],
"errors": [] "errors": [],
"checked_files": [
"[WILDCARD]main.ts"
]
} }

View File

@ -38,5 +38,8 @@
"hint": "If this is intentional, prefix it with an underscore like `_add`" "hint": "If this is intentional, prefix it with an underscore like `_add`"
} }
], ],
"errors": [] "errors": [],
"checked_files": [
"[WILDCARD]a.ts"
]
} }