diff options
author | Kamil Ogórek <kamil.ogorek@gmail.com> | 2024-09-05 10:51:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-05 08:51:40 +0000 |
commit | 2c4d99a4586a8aa143feb8614e3b0d4de09dd190 (patch) | |
tree | 0c07ee12254da10d9710616be8cc98a32c0f35c7 /cli/tools/doc.rs | |
parent | 49340b96f6b3603186e03f0102b99bc4a34a1b63 (diff) |
feat: include version number in all --json based outputs (#25335)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Diffstat (limited to 'cli/tools/doc.rs')
-rw-r--r-- | cli/tools/doc.rs | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index ce31c8068..0ba3b84fb 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -5,8 +5,7 @@ use crate::args::DocHtmlFlag; use crate::args::DocSourceFileFlag; use crate::args::Flags; use crate::colors; -use crate::display::write_json_to_stdout; -use crate::display::write_to_stdout_ignore_sigpipe; +use crate::display; use crate::factory::CliFactory; use crate::graph_util::graph_exit_lock_errors; use crate::tsc::get_types_declaration_file_text; @@ -17,6 +16,7 @@ use deno_config::glob::PathOrPatternSet; use deno_core::anyhow::bail; use deno_core::anyhow::Context; use deno_core::error::AnyError; +use deno_core::serde_json; use deno_doc as doc; use deno_doc::html::UrlResolveKind; use deno_graph::source::NullFileSystem; @@ -31,6 +31,8 @@ use std::collections::BTreeMap; use std::rc::Rc; use std::sync::Arc; +const JSON_SCHEMA_VERSION: u8 = 1; + async fn generate_doc_nodes_for_builtin_types( doc_flags: DocFlags, parser: &dyn ModuleParser, @@ -228,7 +230,11 @@ pub async fn doc( doc_nodes_by_url.into_values().flatten().collect::<Vec<_>>(); if doc_flags.json { - write_json_to_stdout(&doc_nodes) + let json_output = serde_json::json!({ + "version": JSON_SCHEMA_VERSION, + "nodes": &doc_nodes + }); + display::write_json_to_stdout(&json_output) } else if doc_flags.lint { // don't output docs if running with only the --lint flag log::info!( @@ -553,7 +559,8 @@ fn print_docs_to_stdout( ) }; - write_to_stdout_ignore_sigpipe(details.as_bytes()).map_err(AnyError::from) + display::write_to_stdout_ignore_sigpipe(details.as_bytes()) + .map_err(AnyError::from) } fn check_diagnostics(diagnostics: &[DocDiagnostic]) -> Result<(), AnyError> { |