diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-08-23 15:48:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-23 15:48:35 +0200 |
commit | 2600d5ac090536117109f0b72e2d52f06bf4523a (patch) | |
tree | 6a36f47758d14dd5cc130dbc7cec0085e9671327 /cli/main.rs | |
parent | c1558beffbb5f7941059be2e4e91ba2d1454adaa (diff) |
fix(doc): stack overflow for .d.ts files (#7167)
Diffstat (limited to 'cli/main.rs')
-rw-r--r-- | cli/main.rs | 10 |
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 |