summaryrefslogtreecommitdiff
path: root/cli/tools/doc.rs
diff options
context:
space:
mode:
authorKamil Ogórek <kamil.ogorek@gmail.com>2024-09-05 10:51:40 +0200
committerGitHub <noreply@github.com>2024-09-05 08:51:40 +0000
commit2c4d99a4586a8aa143feb8614e3b0d4de09dd190 (patch)
tree0c07ee12254da10d9710616be8cc98a32c0f35c7 /cli/tools/doc.rs
parent49340b96f6b3603186e03f0102b99bc4a34a1b63 (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.rs15
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> {