diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2024-01-23 11:25:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-23 11:25:44 +0100 |
commit | e49973d96d6817378c71bf1875b03b77d083f1d3 (patch) | |
tree | f13543292de82ae92e127a137d6f9fc11ceb66b0 /cli/tools/doc.rs | |
parent | ec97c7dd4b5c1be83639769990ca6d37345089ca (diff) |
chore: update deno_ast and deno_graph (#22033)
This upgrade unblocks support for ES decorator proposal.
Co-authored-by: crowlkats <crowlkats@toaxl.com>
Diffstat (limited to 'cli/tools/doc.rs')
-rw-r--r-- | cli/tools/doc.rs | 41 |
1 files changed, 17 insertions, 24 deletions
diff --git a/cli/tools/doc.rs b/cli/tools/doc.rs index 4321b3ce7..4a59ec986 100644 --- a/cli/tools/doc.rs +++ b/cli/tools/doc.rs @@ -146,12 +146,9 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { .await?; let (_, deno_ns) = deno_ns.first().unwrap(); - let deno_ns_symbols = - deno_doc::html::compute_namespaced_symbols(deno_ns, &[]); - - Some(deno_ns_symbols) + deno_doc::html::compute_namespaced_symbols(deno_ns, &[]) } else { - None + Default::default() }; generate_docs_directory(&doc_nodes_by_url, html_options, deno_ns) @@ -178,15 +175,21 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> { } } -struct DocResolver {} +struct DocResolver { + deno_ns: std::collections::HashSet<Vec<String>>, +} impl deno_doc::html::HrefResolver for DocResolver { - fn resolve_global_symbol(&self, symbol: &[String], _context: &str) -> String { - format!( - "https://deno.land/api@{}?s={}", - env!("CARGO_PKG_VERSION"), - symbol.join(".") - ) + fn resolve_global_symbol(&self, symbol: &[String]) -> Option<String> { + if self.deno_ns.contains(symbol) { + Some(format!( + "https://deno.land/api@{}?s={}", + env!("CARGO_PKG_VERSION"), + symbol.join(".") + )) + } else { + None + } } fn resolve_import_href( @@ -220,7 +223,7 @@ impl deno_doc::html::HrefResolver for DocResolver { async fn generate_docs_directory( doc_nodes_by_url: &IndexMap<ModuleSpecifier, Vec<doc::DocNode>>, html_options: &DocHtmlFlag, - deno_ns: Option<std::collections::HashSet<Vec<String>>>, + deno_ns: std::collections::HashSet<Vec<String>>, ) -> Result<(), AnyError> { let cwd = std::env::current_dir().context("Failed to get CWD")?; let output_dir_resolved = cwd.join(&html_options.output); @@ -228,19 +231,9 @@ async fn generate_docs_directory( let options = deno_doc::html::GenerateOptions { package_name: Some(html_options.name.to_owned()), main_entrypoint: None, - global_symbols: deno_doc::html::NamespacedGlobalSymbols::new( - deno_ns - .map(|deno_ns| { - deno_ns - .into_iter() - .map(|symbol| (symbol, "deno".to_string())) - .collect() - }) - .unwrap_or_default(), - ), rewrite_map: None, hide_module_doc_title: false, - href_resolver: Rc::new(DocResolver {}), + href_resolver: Rc::new(DocResolver { deno_ns }), sidebar_flatten_namespaces: false, }; |