summaryrefslogtreecommitdiff
path: root/cli/media_type.rs
diff options
context:
space:
mode:
authorKitson Kelly <me@kitsonkelly.com>2020-10-23 11:50:15 +1100
committerGitHub <noreply@github.com>2020-10-23 11:50:15 +1100
commit7e2c7fb6c5454e30158d74e1a5786183ea391f07 (patch)
tree42402aa26a0422b9c46d1d441598dbe803b8ed15 /cli/media_type.rs
parent9fa59f0ca8164f5e02ba2a2fa90b6fdbce5c1afb (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.rs32
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