0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-01 12:16:11 -05:00

chore: update deno_doc (#23544)

This commit is contained in:
Leo Kettmeir 2024-04-24 13:34:21 -07:00 committed by GitHub
parent ac71d876d7
commit 5a7414e163
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 515 additions and 512 deletions

976
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -66,7 +66,7 @@ deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposa
deno_cache_dir = { workspace = true }
deno_config = "=0.16.1"
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
deno_doc = { version = "=0.125.0", features = ["html"] }
deno_doc = { version = "=0.128.0", features = ["html"] }
deno_emit = "=0.40.0"
deno_graph = { version = "=0.73.1", features = ["tokio_executor"] }
deno_lint = { version = "=0.58.3", features = ["docs"] }

View file

@ -127,7 +127,7 @@ impl Default for DocSourceFileFlag {
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct DocHtmlFlag {
pub name: String,
pub name: Option<String>,
pub output: String,
}
@ -1695,7 +1695,6 @@ Show documentation for runtime built-ins:
.long("name")
.help("The name that will be displayed in the docs")
.action(ArgAction::Set)
.required_if_eq("html", "true")
.require_equals(true)
)
.arg(
@ -3690,7 +3689,7 @@ fn doc_parse(flags: &mut Flags, matches: &mut ArgMatches) {
let json = matches.get_flag("json");
let filter = matches.remove_one::<String>("filter");
let html = if matches.get_flag("html") {
let name = matches.remove_one::<String>("name").unwrap();
let name = matches.remove_one::<String>("name");
let output = matches
.remove_one::<String>("output")
.unwrap_or(String::from("./docs/"));
@ -8353,7 +8352,7 @@ mod tests {
);
let r = flags_from_vec(svec!["deno", "doc", "--html", "path/to/module.ts"]);
assert!(r.is_err());
assert!(r.is_ok());
let r = flags_from_vec(svec![
"deno",
@ -8370,7 +8369,7 @@ mod tests {
json: false,
lint: false,
html: Some(DocHtmlFlag {
name: "My library".to_string(),
name: Some("My library".to_string()),
output: String::from("./docs/"),
}),
source_files: DocSourceFileFlag::Paths(svec!["path/to/module.ts"]),
@ -8396,7 +8395,7 @@ mod tests {
private: false,
json: false,
html: Some(DocHtmlFlag {
name: "My library".to_string(),
name: Some("My library".to_string()),
output: String::from("./foo"),
}),
lint: true,

View file

@ -18,6 +18,7 @@ use deno_core::anyhow::bail;
use deno_core::anyhow::Context;
use deno_core::error::AnyError;
use deno_doc as doc;
use deno_doc::html::UrlResolveKind;
use deno_graph::source::NullFileSystem;
use deno_graph::GraphKind;
use deno_graph::ModuleAnalyzer;
@ -35,7 +36,7 @@ async fn generate_doc_nodes_for_builtin_types(
analyzer: &dyn ModuleAnalyzer,
) -> Result<IndexMap<ModuleSpecifier, Vec<doc::DocNode>>, AnyError> {
let source_file_specifier =
ModuleSpecifier::parse("internal://lib.deno.d.ts").unwrap();
ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap();
let content = get_types_declaration_file_text();
let loader = deno_graph::source::MemoryLoader::new(
vec![(
@ -160,11 +161,18 @@ pub async fn doc(flags: Flags, doc_flags: DocFlags) -> Result<(), AnyError> {
.await?;
let (_, deno_ns) = deno_ns.into_iter().next().unwrap();
let short_path = Rc::new(ShortPath::new(
ModuleSpecifier::parse("file:///lib.deno.d.ts").unwrap(),
None,
None,
None,
));
deno_doc::html::compute_namespaced_symbols(
deno_ns
.into_iter()
.map(|node| deno_doc::html::DocNodeWithContext {
origin: Rc::new(ShortPath::from("deno".to_string())),
origin: short_path.clone(),
ns_qualifiers: Rc::new(vec![]),
kind_with_drilldown:
deno_doc::html::DocNodeKindWithDrilldown::Other(node.kind),
@ -205,6 +213,14 @@ struct DocResolver {
}
impl deno_doc::html::HrefResolver for DocResolver {
fn resolve_path(
&self,
current: UrlResolveKind,
target: UrlResolveKind,
) -> String {
deno_doc::html::href_path_resolve(current, target)
}
fn resolve_global_symbol(&self, symbol: &[String]) -> Option<String> {
if self.deno_ns.contains(symbol) {
Some(format!(
@ -232,12 +248,8 @@ impl deno_doc::html::HrefResolver for DocResolver {
None
}
fn resolve_usage(
&self,
_current_specifier: &ModuleSpecifier,
current_file: Option<&ShortPath>,
) -> Option<String> {
current_file.map(|f| f.as_str().to_string())
fn resolve_usage(&self, current_resolve: UrlResolveKind) -> Option<String> {
current_resolve.get_file().map(|file| file.path.to_string())
}
fn resolve_source(&self, location: &deno_doc::Location) -> Option<String> {
@ -254,13 +266,12 @@ fn generate_docs_directory(
let output_dir_resolved = cwd.join(&html_options.output);
let options = deno_doc::html::GenerateOptions {
package_name: Some(html_options.name.to_owned()),
package_name: html_options.name.clone(),
main_entrypoint: None,
rewrite_map: None,
hide_module_doc_title: false,
href_resolver: Rc::new(DocResolver { deno_ns }),
sidebar_flatten_namespaces: false,
usage_composer: None,
composable_output: false,
};
let files = deno_doc::html::generate(options, doc_nodes_by_url)

View file

@ -139,7 +139,7 @@ fn deno_doc_html() {
.run();
output.assert_exit_code(0);
assert_contains!(output.stderr(), "Written 14 files to");
assert_contains!(output.stderr(), "Written 13 files to");
assert!(temp_dir.path().join("all_symbols.html").exists());
assert!(temp_dir.path().join("index.html").exists());
assert!(temp_dir.path().join("fuse.js").exists());
@ -156,5 +156,4 @@ fn deno_doc_html() {
.path()
.join("~/MyClass.prototype.prop.html")
.exists());
assert!(temp_dir.path().join("~/index.html").exists());
}

View file

@ -1 +1 @@
Written 12 files to "./docs/"
Written 11 files to "./docs/"