1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-21 21:50:00 -05:00

feat(lint): support --rules --json (#8384)

This commit adds support for "--json" flag in combination
with "--rules". List of rules is serialized to JSON and printed.
This commit is contained in:
Bartek Iwańczuk 2020-11-14 20:51:30 +01:00 committed by GitHub
parent 9029003046
commit 2cbf5c26ac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 7 deletions

View file

@ -96,14 +96,29 @@ pub async fn lint_files(
Ok(())
}
pub fn print_rules_list() {
fn rule_to_json(rule: Box<dyn LintRule>) -> serde_json::Value {
serde_json::json!({
"code": rule.code(),
"tags": rule.tags(),
"docs": rule.docs(),
})
}
pub fn print_rules_list(json: bool) {
let lint_rules = rules::get_recommended_rules();
// The rules should still be printed even if `--quiet` option is enabled,
// so use `println!` here instead of `info!`.
println!("Available rules:");
for rule in lint_rules {
println!(" - {}", rule.code());
if json {
let json_rules: Vec<serde_json::Value> =
lint_rules.into_iter().map(rule_to_json).collect();
let json_str = serde_json::to_string_pretty(&json_rules).unwrap();
println!("{}", json_str);
} else {
// The rules should still be printed even if `--quiet` option is enabled,
// so use `println!` here instead of `info!`.
println!("Available rules:");
for rule in lint_rules {
println!(" - {}", rule.code());
}
}
}

View file

@ -229,7 +229,7 @@ async fn lint_command(
}
if list_rules {
lint::print_rules_list();
lint::print_rules_list(json);
return Ok(());
}