summaryrefslogtreecommitdiff
path: root/cli/file_fetcher.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2020-09-12 11:08:00 +0200
committerGitHub <noreply@github.com>2020-09-12 11:08:00 +0200
commit60dbc6b29417d666bf01762be84f12b9d2217f90 (patch)
tree1755f5a8f65f692c3db72365d58dc669c934f3e0 /cli/file_fetcher.rs
parente3319f34a6ece36eab3138eae83c8d0e18fcc07c (diff)
Revert "feat(unstable): Support data: urls (#5157)" (#7432)
This reverts commit e3319f34a6ece36eab3138eae83c8d0e18fcc07c.
Diffstat (limited to 'cli/file_fetcher.rs')
-rw-r--r--cli/file_fetcher.rs42
1 files changed, 1 insertions, 41 deletions
diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs
index f6400027a..8b3ca46a0 100644
--- a/cli/file_fetcher.rs
+++ b/cli/file_fetcher.rs
@@ -100,7 +100,7 @@ impl SourceFileCache {
}
}
-const SUPPORTED_URL_SCHEMES: [&str; 4] = ["http", "https", "file", "data"];
+const SUPPORTED_URL_SCHEMES: [&str; 3] = ["http", "https", "file"];
#[derive(Clone)]
pub struct SourceFileFetcher {
@@ -278,7 +278,6 @@ impl SourceFileFetcher {
) -> Result<Option<SourceFile>, ErrBox> {
let url_scheme = module_url.scheme();
let is_local_file = url_scheme == "file";
- let is_data_url = url_scheme == "data";
SourceFileFetcher::check_if_supported_scheme(&module_url)?;
// Local files are always fetched from disk bypassing cache entirely.
@@ -286,10 +285,6 @@ impl SourceFileFetcher {
return self.fetch_local_file(&module_url, permissions).map(Some);
}
- if is_data_url {
- return extract_data_url(module_url).map(Some);
- }
-
self.fetch_cached_remote_source(&module_url, 10)
}
@@ -314,7 +309,6 @@ impl SourceFileFetcher {
) -> Result<SourceFile, ErrBox> {
let url_scheme = module_url.scheme();
let is_local_file = url_scheme == "file";
- let is_data_url = url_scheme == "data";
SourceFileFetcher::check_if_supported_scheme(&module_url)?;
// Local files are always fetched from disk bypassing cache entirely.
@@ -322,10 +316,6 @@ impl SourceFileFetcher {
return self.fetch_local_file(&module_url, permissions);
}
- if is_data_url {
- return extract_data_url(module_url);
- }
-
// The file is remote, fail if `no_remote` is true.
if no_remote {
let e = std::io::Error::new(
@@ -562,36 +552,6 @@ impl SourceFileFetcher {
}
}
-fn extract_data_url(url: &Url) -> Result<SourceFile, ErrBox> {
- assert_eq!(url.scheme(), "data");
- let url_content = &url.as_str()[5..];
- let mut part_iterator = url_content.splitn(2, ',');
-
- let media_type_str = part_iterator.next().unwrap();
- let data = if let Some(d) = part_iterator.next() {
- d
- } else {
- return Err(ErrBox::new("URIError", "Malformed data url, missing comma"));
- };
-
- let filename = PathBuf::new();
- let (media_type, charset) = map_content_type(&filename, Some(media_type_str));
- let is_base64 = media_type_str.rsplit(';').any(|v| v == "base64");
- let bytes = if is_base64 {
- base64::decode(data)?
- } else {
- percent_encoding::percent_decode_str(data).collect::<Vec<u8>>()
- };
-
- Ok(SourceFile {
- url: url.clone(),
- filename,
- types_header: None,
- media_type,
- source_code: TextDocument::new(bytes, charset),
- })
-}
-
pub fn map_file_extension(path: &Path) -> msg::MediaType {
match path.extension() {
None => msg::MediaType::Unknown,