summaryrefslogtreecommitdiff
path: root/cli/main.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-08-23 15:48:35 +0200
committerGitHub <noreply@github.com>2020-08-23 15:48:35 +0200
commit2600d5ac090536117109f0b72e2d52f06bf4523a (patch)
tree6a36f47758d14dd5cc130dbc7cec0085e9671327 /cli/main.rs
parentc1558beffbb5f7941059be2e4e91ba2d1454adaa (diff)
fix(doc): stack overflow for .d.ts files (#7167)
Diffstat (limited to 'cli/main.rs')
-rw-r--r--cli/main.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/cli/main.rs b/cli/main.rs
index 353b7763f..7cf698d5a 100644
--- a/cli/main.rs
+++ b/cli/main.rs
@@ -545,16 +545,22 @@ async fn doc_command(
let loader = Box::new(global_state.file_fetcher.clone());
let doc_parser = doc::DocParser::new(loader, private);
- let media_type = map_file_extension(&PathBuf::from(&source_file));
- let syntax = swc_util::get_syntax_for_media_type(media_type);
let parse_result = if source_file == "--builtin" {
+ let syntax = swc_util::get_syntax_for_dts();
doc_parser.parse_source(
"lib.deno.d.ts",
syntax,
get_types(flags.unstable).as_str(),
)
} else {
+ let path = PathBuf::from(&source_file);
+ let syntax = if path.ends_with("d.ts") {
+ swc_util::get_syntax_for_dts()
+ } else {
+ let media_type = map_file_extension(&path);
+ swc_util::get_syntax_for_media_type(media_type)
+ };
let module_specifier =
ModuleSpecifier::resolve_url_or_path(&source_file).unwrap();
doc_parser