diff options
Diffstat (limited to 'cli/tsc.rs')
-rw-r--r-- | cli/tsc.rs | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/cli/tsc.rs b/cli/tsc.rs index 922bee6d7..bb377c5d8 100644 --- a/cli/tsc.rs +++ b/cli/tsc.rs @@ -140,8 +140,35 @@ fn get_tsc_media_type(specifier: &ModuleSpecifier) -> MediaType { } MediaType::TypeScript } + Some("mts") => { + if let Some(os_str) = path.file_stem() { + if let Some(file_name) = os_str.to_str() { + if file_name.ends_with(".d") { + // todo(#12410): Use Dmts for TS 4.5 + return MediaType::Dts; + } + } + } + // todo(#12410): Use Mts for TS 4.5 + MediaType::TypeScript + } + Some("cts") => { + if let Some(os_str) = path.file_stem() { + if let Some(file_name) = os_str.to_str() { + if file_name.ends_with(".d") { + // todo(#12410): Use Dcts for TS 4.5 + return MediaType::Dts; + } + } + } + // todo(#12410): Use Cts for TS 4.5 + MediaType::TypeScript + } Some("tsx") => MediaType::Tsx, Some("js") => MediaType::JavaScript, + // todo(#12410): Use correct media type for TS 4.5 + Some("mjs") => MediaType::JavaScript, + Some("cjs") => MediaType::JavaScript, Some("jsx") => MediaType::Jsx, _ => MediaType::Unknown, }, @@ -707,12 +734,16 @@ mod tests { fn test_get_tsc_media_type() { let fixtures = vec![ ("file:///a.ts", MediaType::TypeScript), + ("file:///a.cts", MediaType::TypeScript), + ("file:///a.mts", MediaType::TypeScript), ("file:///a.tsx", MediaType::Tsx), ("file:///a.d.ts", MediaType::Dts), + ("file:///a.d.cts", MediaType::Dts), + ("file:///a.d.mts", MediaType::Dts), ("file:///a.js", MediaType::JavaScript), ("file:///a.jsx", MediaType::Jsx), - ("file:///a.cjs", MediaType::Unknown), - ("file:///a.mjs", MediaType::Unknown), + ("file:///a.cjs", MediaType::JavaScript), + ("file:///a.mjs", MediaType::JavaScript), ("file:///a.json", MediaType::Unknown), ("file:///a.wasm", MediaType::Unknown), ("file:///a.js.map", MediaType::Unknown), |