diff options
| author | Kitson Kelly <me@kitsonkelly.com> | 2020-10-23 11:50:15 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-23 11:50:15 +1100 |
| commit | 7e2c7fb6c5454e30158d74e1a5786183ea391f07 (patch) | |
| tree | 42402aa26a0422b9c46d1d441598dbe803b8ed15 /cli/media_type.rs | |
| parent | 9fa59f0ca8164f5e02ba2a2fa90b6fdbce5c1afb (diff) | |
refactor(cli): migrate run and cache to new infrastructure (#7996)
Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
Diffstat (limited to 'cli/media_type.rs')
| -rw-r--r-- | cli/media_type.rs | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/cli/media_type.rs b/cli/media_type.rs index c3c2f8e23..7d63439f6 100644 --- a/cli/media_type.rs +++ b/cli/media_type.rs @@ -77,7 +77,19 @@ impl MediaType { }, }, Some(os_str) => match os_str.to_str() { - Some("ts") => MediaType::TypeScript, + Some("ts") => match path.file_stem() { + Some(os_str) => match os_str.to_str() { + Some(file_name) => { + if file_name.ends_with(".d") { + MediaType::Dts + } else { + MediaType::TypeScript + } + } + None => MediaType::TypeScript, + }, + None => MediaType::TypeScript, + }, Some("tsx") => MediaType::TSX, Some("js") => MediaType::JavaScript, Some("jsx") => MediaType::JSX, @@ -121,6 +133,19 @@ impl MediaType { ext.into() } + + /// Map the media type to a `ts.ScriptKind` + pub fn as_ts_script_kind(&self) -> i32 { + match self { + MediaType::JavaScript => 1, + MediaType::JSX => 2, + MediaType::TypeScript => 3, + MediaType::Dts => 3, + MediaType::TSX => 4, + MediaType::Json => 5, + _ => 0, + } + } } impl Serialize for MediaType { @@ -167,10 +192,7 @@ mod tests { MediaType::TypeScript ); assert_eq!(MediaType::from(Path::new("foo/bar.tsx")), MediaType::TSX); - assert_eq!( - MediaType::from(Path::new("foo/bar.d.ts")), - MediaType::TypeScript - ); + assert_eq!(MediaType::from(Path::new("foo/bar.d.ts")), MediaType::Dts); assert_eq!( MediaType::from(Path::new("foo/bar.js")), MediaType::JavaScript |
