summaryrefslogtreecommitdiff
path: root/cli/tools
diff options
context:
space:
mode:
Diffstat (limited to 'cli/tools')
-rw-r--r--cli/tools/doc.rs121
1 files changed, 61 insertions, 60 deletions
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs
index 0067e485a..12f7b7dc4 100644
--- a/cli/tools/doc.rs
+++ b/cli/tools/doc.rs
@@ -1,6 +1,7 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
use crate::args::DocFlags;
+use crate::args::DocSourceFileFlag;
use crate::args::Flags;
use crate::colors;
use crate::display::write_json_to_stdout;
@@ -22,71 +23,71 @@ pub async fn print_docs(
doc_flags: DocFlags,
) -> Result<(), AnyError> {
let ps = ProcState::build(flags).await?;
- let source_file = doc_flags
- .source_file
- .unwrap_or_else(|| "--builtin".to_string());
- let mut doc_nodes = if source_file == "--builtin" {
- let source_file_specifier =
- ModuleSpecifier::parse("deno://lib.deno.d.ts").unwrap();
- let content = get_types_declaration_file_text(ps.options.unstable());
- let mut loader = deno_graph::source::MemoryLoader::new(
- vec![(
- source_file_specifier.to_string(),
- deno_graph::source::Source::Module {
- specifier: source_file_specifier.to_string(),
- content,
- maybe_headers: None,
+ let mut doc_nodes = match doc_flags.source_file {
+ DocSourceFileFlag::Builtin => {
+ let source_file_specifier =
+ ModuleSpecifier::parse("deno://lib.deno.d.ts").unwrap();
+ let content = get_types_declaration_file_text(ps.options.unstable());
+ let mut loader = deno_graph::source::MemoryLoader::new(
+ vec![(
+ source_file_specifier.to_string(),
+ deno_graph::source::Source::Module {
+ specifier: source_file_specifier.to_string(),
+ content,
+ maybe_headers: None,
+ },
+ )],
+ Vec::new(),
+ );
+ let analyzer = deno_graph::CapturingModuleAnalyzer::default();
+ let graph = deno_graph::create_graph(
+ vec![(source_file_specifier.clone(), ModuleKind::Esm)],
+ &mut loader,
+ deno_graph::GraphOptions {
+ is_dynamic: false,
+ imports: None,
+ resolver: None,
+ module_analyzer: Some(&analyzer),
+ reporter: None,
},
- )],
- Vec::new(),
- );
- let analyzer = deno_graph::CapturingModuleAnalyzer::default();
- let graph = deno_graph::create_graph(
- vec![(source_file_specifier.clone(), ModuleKind::Esm)],
- &mut loader,
- deno_graph::GraphOptions {
- is_dynamic: false,
- imports: None,
- resolver: None,
- module_analyzer: Some(&analyzer),
- reporter: None,
- },
- )
- .await;
- let doc_parser = doc::DocParser::new(
- graph,
- doc_flags.private,
- analyzer.as_capturing_parser(),
- );
- doc_parser.parse_module(&source_file_specifier)?.definitions
- } else {
- let module_specifier = resolve_url_or_path(&source_file)?;
+ )
+ .await;
+ let doc_parser = doc::DocParser::new(
+ graph,
+ doc_flags.private,
+ analyzer.as_capturing_parser(),
+ );
+ doc_parser.parse_module(&source_file_specifier)?.definitions
+ }
+ DocSourceFileFlag::Path(source_file) => {
+ let module_specifier = resolve_url_or_path(&source_file)?;
- // If the root module has external types, the module graph won't redirect it,
- // so instead create a dummy file which exports everything from the actual file being documented.
- let root_specifier = resolve_url_or_path("./$deno$doc.ts").unwrap();
- let root = File {
- local: PathBuf::from("./$deno$doc.ts"),
- maybe_types: None,
- media_type: MediaType::TypeScript,
- source: format!("export * from \"{}\";", module_specifier).into(),
- specifier: root_specifier.clone(),
- maybe_headers: None,
- };
+ // If the root module has external types, the module graph won't redirect it,
+ // so instead create a dummy file which exports everything from the actual file being documented.
+ let root_specifier = resolve_url_or_path("./$deno$doc.ts").unwrap();
+ let root = File {
+ local: PathBuf::from("./$deno$doc.ts"),
+ maybe_types: None,
+ media_type: MediaType::TypeScript,
+ source: format!("export * from \"{}\";", module_specifier).into(),
+ specifier: root_specifier.clone(),
+ maybe_headers: None,
+ };
- // Save our fake file into file fetcher cache.
- ps.file_fetcher.insert_cached(root);
+ // Save our fake file into file fetcher cache.
+ ps.file_fetcher.insert_cached(root);
- let graph = ps
- .create_graph(vec![(root_specifier.clone(), ModuleKind::Esm)])
- .await?;
- let doc_parser = doc::DocParser::new(
- graph,
- doc_flags.private,
- ps.parsed_source_cache.as_capturing_parser(),
- );
- doc_parser.parse_with_reexports(&root_specifier)?
+ let graph = ps
+ .create_graph(vec![(root_specifier.clone(), ModuleKind::Esm)])
+ .await?;
+ let doc_parser = doc::DocParser::new(
+ graph,
+ doc_flags.private,
+ ps.parsed_source_cache.as_capturing_parser(),
+ );
+ doc_parser.parse_with_reexports(&root_specifier)?
+ }
};
if doc_flags.json {