summaryrefslogtreecommitdiff
path: root/cli/media_type.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/media_type.rs')
-rw-r--r--cli/media_type.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/cli/media_type.rs b/cli/media_type.rs
index 7d63439f6..cb26bcff5 100644
--- a/cli/media_type.rs
+++ b/cli/media_type.rs
@@ -1,5 +1,6 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+use deno_core::ModuleSpecifier;
use serde::Serialize;
use serde::Serializer;
use std::fmt;
@@ -60,6 +61,22 @@ impl<'a> From<&'a String> for MediaType {
}
}
+impl<'a> From<&'a ModuleSpecifier> for MediaType {
+ fn from(specifier: &'a ModuleSpecifier) -> Self {
+ let url = specifier.as_url();
+ let path = if url.scheme() == "file" {
+ if let Ok(path) = url.to_file_path() {
+ path
+ } else {
+ PathBuf::from(url.path())
+ }
+ } else {
+ PathBuf::from(url.path())
+ };
+ MediaType::from_path(&path)
+ }
+}
+
impl Default for MediaType {
fn default() -> Self {
MediaType::Unknown