diff options
author | Kitson Kelly <me@kitsonkelly.com> | 2021-02-15 20:32:06 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-15 20:32:06 +1100 |
commit | 64a1da84fe8eb159f83afe62254dac9e87e1f831 (patch) | |
tree | aaa7535540ca131e6a0d1f54b821b6afba78941e /cli/file_fetcher.rs | |
parent | 5873adeb5e6ec2113eeb5adc964b7ce129d4905d (diff) |
fix(lsp): handle cached type dependencies properly (#9500)
Diffstat (limited to 'cli/file_fetcher.rs')
-rw-r--r-- | cli/file_fetcher.rs | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/cli/file_fetcher.rs b/cli/file_fetcher.rs index 3e6622408..23ace672c 100644 --- a/cli/file_fetcher.rs +++ b/cli/file_fetcher.rs @@ -338,7 +338,12 @@ impl FileFetcher { bytes: Vec<u8>, headers: &HashMap<String, String>, ) -> Result<File, AnyError> { - let local = self.http_cache.get_cache_filename(specifier.as_url()); + let local = self + .http_cache + .get_cache_filename(specifier.as_url()) + .ok_or_else(|| { + generic_error("Cannot convert specifier to cached filename.") + })?; let maybe_content_type = headers.get("content-type").cloned(); let (media_type, maybe_charset) = map_content_type(specifier, maybe_content_type); @@ -416,7 +421,12 @@ impl FileFetcher { let (source, media_type, content_type) = get_source_from_data_url(specifier)?; - let local = self.http_cache.get_cache_filename(specifier.as_url()); + let local = self + .http_cache + .get_cache_filename(specifier.as_url()) + .ok_or_else(|| { + generic_error("Cannot convert specifier to cached filename.") + })?; let mut headers = HashMap::new(); headers.insert("content-type".to_string(), content_type); self @@ -995,7 +1005,8 @@ mod tests { let cache_filename = file_fetcher .http_cache - .get_cache_filename(specifier.as_url()); + .get_cache_filename(specifier.as_url()) + .unwrap(); let mut metadata = crate::http_cache::Metadata::read(&cache_filename).unwrap(); metadata.headers = HashMap::new(); @@ -1079,7 +1090,8 @@ mod tests { .unwrap(); let cache_filename = file_fetcher_01 .http_cache - .get_cache_filename(specifier.as_url()); + .get_cache_filename(specifier.as_url()) + .unwrap(); let result = file_fetcher_01 .fetch(&specifier, &Permissions::allow_all()) @@ -1128,14 +1140,16 @@ mod tests { .unwrap(); let cached_filename = file_fetcher .http_cache - .get_cache_filename(specifier.as_url()); + .get_cache_filename(specifier.as_url()) + .unwrap(); let redirected_specifier = ModuleSpecifier::resolve_url( "http://localhost:4545/cli/tests/subdir/redirects/redirect1.js", ) .unwrap(); let redirected_cached_filename = file_fetcher .http_cache - .get_cache_filename(redirected_specifier.as_url()); + .get_cache_filename(redirected_specifier.as_url()) + .unwrap(); let result = file_fetcher .fetch(&specifier, &Permissions::allow_all()) @@ -1179,21 +1193,24 @@ mod tests { .unwrap(); let cached_filename = file_fetcher .http_cache - .get_cache_filename(specifier.as_url()); + .get_cache_filename(specifier.as_url()) + .unwrap(); let redirected_01_specifier = ModuleSpecifier::resolve_url( "http://localhost:4546/cli/tests/subdir/redirects/redirect1.js", ) .unwrap(); let redirected_01_cached_filename = file_fetcher .http_cache - .get_cache_filename(redirected_01_specifier.as_url()); + .get_cache_filename(redirected_01_specifier.as_url()) + .unwrap(); let redirected_02_specifier = ModuleSpecifier::resolve_url( "http://localhost:4545/cli/tests/subdir/redirects/redirect1.js", ) .unwrap(); let redirected_02_cached_filename = file_fetcher .http_cache - .get_cache_filename(redirected_02_specifier.as_url()); + .get_cache_filename(redirected_02_specifier.as_url()) + .unwrap(); let result = file_fetcher .fetch(&specifier, &Permissions::allow_all()) @@ -1265,7 +1282,8 @@ mod tests { .unwrap(); let redirected_cache_filename = file_fetcher_01 .http_cache - .get_cache_filename(redirected_specifier.as_url()); + .get_cache_filename(redirected_specifier.as_url()) + .unwrap(); let result = file_fetcher_01 .fetch(&specifier, &Permissions::allow_all()) @@ -1340,14 +1358,16 @@ mod tests { .unwrap(); let cached_filename = file_fetcher .http_cache - .get_cache_filename(specifier.as_url()); + .get_cache_filename(specifier.as_url()) + .unwrap(); let redirected_specifier = ModuleSpecifier::resolve_url( "http://localhost:4550/cli/tests/subdir/redirects/redirect1.js", ) .unwrap(); let redirected_cached_filename = file_fetcher .http_cache - .get_cache_filename(redirected_specifier.as_url()); + .get_cache_filename(redirected_specifier.as_url()) + .unwrap(); let result = file_fetcher .fetch(&specifier, &Permissions::allow_all()) |