summaryrefslogtreecommitdiff
path: root/cli/import_map.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/import_map.rs')
-rw-r--r--cli/import_map.rs128
1 files changed, 64 insertions, 64 deletions
diff --git a/cli/import_map.rs b/cli/import_map.rs
index a71a4f405..ab52de1a9 100644
--- a/cli/import_map.rs
+++ b/cli/import_map.rs
@@ -172,7 +172,7 @@ impl ImportMap {
continue;
}
- normalized_addresses.push(url.into());
+ normalized_addresses.push(url);
}
normalized_addresses
@@ -367,13 +367,13 @@ impl ImportMap {
if address_vec.is_empty() {
return Err(ImportMapError::new(&format!("Specifier {:?} was mapped to no addresses (via prefix specifier key {:?}).", normalized_specifier, specifier_key)));
} else if address_vec.len() == 1 {
- let address = address_vec.first().unwrap();
+ let base_url = address_vec.first().unwrap();
let after_prefix = &normalized_specifier[specifier_key.len()..];
- let base_url = address.as_url();
if let Ok(url) = base_url.join(after_prefix) {
- debug!("Specifier {:?} was mapped to {:?} (via prefix specifier key {:?}).", normalized_specifier, url, address);
- return Ok(Some(ModuleSpecifier::from(url)));
+ debug!("Specifier {:?} was mapped to {:?} (via prefix specifier key {:?}).",
+ normalized_specifier, url, base_url);
+ return Ok(Some(url));
}
unreachable!();
@@ -434,7 +434,7 @@ impl ImportMap {
// no match in import map but we got resolvable URL
if let Some(resolved_url) = resolved_url {
- return Ok(Some(ModuleSpecifier::from(resolved_url)));
+ return Ok(Some(resolved_url));
}
Err(ImportMapError::new(&format!(
@@ -513,18 +513,18 @@ mod tests {
.imports
.get("https://base.example/path1/path2/foo")
.unwrap()[0],
- "https://base.example/dotslash".to_string()
+ Url::parse("https://base.example/dotslash").unwrap()
);
assert_eq!(
import_map
.imports
.get("https://base.example/path1/foo")
.unwrap()[0],
- "https://base.example/dotdotslash".to_string()
+ Url::parse("https://base.example/dotdotslash").unwrap()
);
assert_eq!(
import_map.imports.get("https://base.example/foo").unwrap()[0],
- "https://base.example/slash".to_string()
+ Url::parse("https://base.example/slash").unwrap()
);
// Should absolutize the literal strings ./, ../, or / with no suffix..
@@ -543,18 +543,18 @@ mod tests {
.imports
.get("https://base.example/path1/path2/")
.unwrap()[0],
- "https://base.example/dotslash/".to_string()
+ Url::parse("https://base.example/dotslash/").unwrap()
);
assert_eq!(
import_map
.imports
.get("https://base.example/path1/")
.unwrap()[0],
- "https://base.example/dotdotslash/".to_string()
+ Url::parse("https://base.example/dotdotslash/").unwrap()
);
assert_eq!(
import_map.imports.get("https://base.example/").unwrap()[0],
- "https://base.example/slash/".to_string()
+ Url::parse("https://base.example/slash/").unwrap()
);
// Should treat percent-encoded variants of ./, ../, or / as bare specifiers..
@@ -574,31 +574,31 @@ mod tests {
.unwrap();
assert_eq!(
import_map.imports.get("%2E/").unwrap()[0],
- "https://base.example/dotSlash1/".to_string()
+ Url::parse("https://base.example/dotSlash1/").unwrap()
);
assert_eq!(
import_map.imports.get("%2E%2E/").unwrap()[0],
- "https://base.example/dotDotSlash1/".to_string()
+ Url::parse("https://base.example/dotDotSlash1/").unwrap()
);
assert_eq!(
import_map.imports.get(".%2F").unwrap()[0],
- "https://base.example/dotSlash2".to_string()
+ Url::parse("https://base.example/dotSlash2").unwrap()
);
assert_eq!(
import_map.imports.get("..%2F").unwrap()[0],
- "https://base.example/dotDotSlash2".to_string()
+ Url::parse("https://base.example/dotDotSlash2").unwrap()
);
assert_eq!(
import_map.imports.get("%2F").unwrap()[0],
- "https://base.example/slash2".to_string()
+ Url::parse("https://base.example/slash2").unwrap()
);
assert_eq!(
import_map.imports.get("%2E%2F").unwrap()[0],
- "https://base.example/dotSlash3".to_string()
+ Url::parse("https://base.example/dotSlash3").unwrap()
);
assert_eq!(
import_map.imports.get("%2E%2E%2F").unwrap()[0],
- "https://base.example/dotDotSlash3".to_string()
+ Url::parse("https://base.example/dotDotSlash3").unwrap()
);
}
@@ -627,47 +627,47 @@ mod tests {
.unwrap();
assert_eq!(
import_map.imports.get("http://good/").unwrap()[0],
- "https://base.example/http/".to_string()
+ Url::parse("https://base.example/http/").unwrap()
);
assert_eq!(
import_map.imports.get("https://good/").unwrap()[0],
- "https://base.example/https/".to_string()
+ Url::parse("https://base.example/https/").unwrap()
);
assert_eq!(
import_map.imports.get("file:///good").unwrap()[0],
- "https://base.example/file".to_string()
+ Url::parse("https://base.example/file").unwrap()
);
assert_eq!(
import_map.imports.get("http://good/").unwrap()[0],
- "https://base.example/http/".to_string()
+ Url::parse("https://base.example/http/").unwrap()
);
assert_eq!(
import_map.imports.get("import:bad").unwrap()[0],
- "https://base.example/import".to_string()
+ Url::parse("https://base.example/import").unwrap()
);
assert_eq!(
import_map.imports.get("mailto:bad").unwrap()[0],
- "https://base.example/mailto".to_string()
+ Url::parse("https://base.example/mailto").unwrap()
);
assert_eq!(
import_map.imports.get("javascript:bad").unwrap()[0],
- "https://base.example/javascript".to_string()
+ Url::parse("https://base.example/javascript").unwrap()
);
assert_eq!(
import_map.imports.get("wss:bad").unwrap()[0],
- "https://base.example/wss".to_string()
+ Url::parse("https://base.example/wss").unwrap()
);
assert_eq!(
import_map.imports.get("about:bad").unwrap()[0],
- "https://base.example/about".to_string()
+ Url::parse("https://base.example/about").unwrap()
);
assert_eq!(
import_map.imports.get("blob:bad").unwrap()[0],
- "https://base.example/blob".to_string()
+ Url::parse("https://base.example/blob").unwrap()
);
assert_eq!(
import_map.imports.get("data:bad").unwrap()[0],
- "https://base.example/data".to_string()
+ Url::parse("https://base.example/data").unwrap()
);
// Should parse absolute URLs, treating unparseable ones as bare specifiers..
@@ -688,35 +688,35 @@ mod tests {
.unwrap();
assert_eq!(
import_map.imports.get("https://ex ample.org/").unwrap()[0],
- "https://base.example/unparseable1/".to_string()
+ Url::parse("https://base.example/unparseable1/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.com:demo").unwrap()[0],
- "https://base.example/unparseable2".to_string()
+ Url::parse("https://base.example/unparseable2").unwrap()
);
assert_eq!(
import_map.imports.get("http://[www.example.com]/").unwrap()[0],
- "https://base.example/unparseable3/".to_string()
+ Url::parse("https://base.example/unparseable3/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.org/").unwrap()[0],
- "https://base.example/invalidButParseable1/".to_string()
+ Url::parse("https://base.example/invalidButParseable1/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.com///").unwrap()[0],
- "https://base.example/invalidButParseable2/".to_string()
+ Url::parse("https://base.example/invalidButParseable2/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.net/").unwrap()[0],
- "https://base.example/prettyNormal/".to_string()
+ Url::parse("https://base.example/prettyNormal/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.com/").unwrap()[0],
- "https://base.example/percentDecoding/".to_string()
+ Url::parse("https://base.example/percentDecoding/").unwrap()
);
assert_eq!(
import_map.imports.get("https://example.com/%41").unwrap()[0],
- "https://base.example/noPercentDecoding".to_string()
+ Url::parse("https://base.example/noPercentDecoding").unwrap()
);
}
@@ -893,15 +893,15 @@ mod tests {
assert_eq!(
import_map.imports.get("dotSlash").unwrap(),
- &vec!["https://base.example/path1/path2/foo".to_string()]
+ &vec![Url::parse("https://base.example/path1/path2/foo").unwrap()]
);
assert_eq!(
import_map.imports.get("dotDotSlash").unwrap(),
- &vec!["https://base.example/path1/foo".to_string()]
+ &vec![Url::parse("https://base.example/path1/foo").unwrap()]
);
assert_eq!(
import_map.imports.get("slash").unwrap(),
- &vec!["https://base.example/foo".to_string()]
+ &vec![Url::parse("https://base.example/foo").unwrap()]
);
// Should accept the literal strings ./, ../, or / with no suffix..
@@ -918,15 +918,15 @@ mod tests {
assert_eq!(
import_map.imports.get("dotSlash").unwrap(),
- &vec!["https://base.example/path1/path2/".to_string()]
+ &vec![Url::parse("https://base.example/path1/path2/").unwrap()]
);
assert_eq!(
import_map.imports.get("dotDotSlash").unwrap(),
- &vec!["https://base.example/path1/".to_string()]
+ &vec![Url::parse("https://base.example/path1/").unwrap()]
);
assert_eq!(
import_map.imports.get("slash").unwrap(),
- &vec!["https://base.example/".to_string()]
+ &vec![Url::parse("https://base.example/").unwrap()]
);
// Should ignore percent-encoded variants of ./, ../, or /..
@@ -979,19 +979,19 @@ mod tests {
assert_eq!(
import_map.imports.get("file").unwrap(),
- &vec!["file:///good".to_string()]
+ &vec![Url::parse("file:///good").unwrap()]
);
assert_eq!(
import_map.imports.get("http").unwrap(),
- &vec!["http://good/".to_string()]
+ &vec![Url::parse("http://good/").unwrap()]
);
assert_eq!(
import_map.imports.get("https").unwrap(),
- &vec!["https://good/".to_string()]
+ &vec![Url::parse("https://good/").unwrap()]
);
assert_eq!(
import_map.imports.get("data").unwrap(),
- &vec!["data:good".to_string()]
+ &vec![Url::parse("data:good").unwrap()]
);
assert!(import_map.imports.get("about").unwrap().is_empty());
@@ -1029,19 +1029,19 @@ mod tests {
assert_eq!(
import_map.imports.get("file").unwrap(),
- &vec!["file:///good".to_string()]
+ &vec![Url::parse("file:///good").unwrap()]
);
assert_eq!(
import_map.imports.get("http").unwrap(),
- &vec!["http://good/".to_string()]
+ &vec![Url::parse("http://good/").unwrap()]
);
assert_eq!(
import_map.imports.get("https").unwrap(),
- &vec!["https://good/".to_string()]
+ &vec![Url::parse("https://good/").unwrap()]
);
assert_eq!(
import_map.imports.get("data").unwrap(),
- &vec!["data:good".to_string()]
+ &vec![Url::parse("data:good").unwrap()]
);
assert!(import_map.imports.get("about").unwrap().is_empty());
@@ -1075,23 +1075,23 @@ mod tests {
assert_eq!(
import_map.imports.get("invalidButParseable1").unwrap(),
- &vec!["https://example.org/".to_string()]
+ &vec![Url::parse("https://example.org/").unwrap()]
);
assert_eq!(
import_map.imports.get("invalidButParseable2").unwrap(),
- &vec!["https://example.com///".to_string()]
+ &vec![Url::parse("https://example.com///").unwrap()]
);
assert_eq!(
import_map.imports.get("prettyNormal").unwrap(),
- &vec!["https://example.net/".to_string()]
+ &vec![Url::parse("https://example.net/").unwrap()]
);
assert_eq!(
import_map.imports.get("percentDecoding").unwrap(),
- &vec!["https://example.com/".to_string()]
+ &vec![Url::parse("https://example.com/").unwrap()]
);
assert_eq!(
import_map.imports.get("noPercentDecoding").unwrap(),
- &vec!["https://example.com/%41".to_string()]
+ &vec![Url::parse("https://example.com/%41").unwrap()]
);
assert!(import_map.imports.get("unparseable1").unwrap().is_empty());
@@ -1120,23 +1120,23 @@ mod tests {
assert_eq!(
import_map.imports.get("invalidButParseable1").unwrap(),
- &vec!["https://example.org/".to_string()]
+ &vec![Url::parse("https://example.org/").unwrap()]
);
assert_eq!(
import_map.imports.get("invalidButParseable2").unwrap(),
- &vec!["https://example.com///".to_string()]
+ &vec![Url::parse("https://example.com///").unwrap()]
);
assert_eq!(
import_map.imports.get("prettyNormal").unwrap(),
- &vec!["https://example.net/".to_string()]
+ &vec![Url::parse("https://example.net/").unwrap()]
);
assert_eq!(
import_map.imports.get("percentDecoding").unwrap(),
- &vec!["https://example.com/".to_string()]
+ &vec![Url::parse("https://example.com/").unwrap()]
);
assert_eq!(
import_map.imports.get("noPercentDecoding").unwrap(),
- &vec!["https://example.com/%41".to_string()]
+ &vec![Url::parse("https://example.com/%41").unwrap()]
);
assert!(import_map.imports.get("unparseable1").unwrap().is_empty());
@@ -1190,7 +1190,7 @@ mod tests {
assert_eq!(
import_map.imports.get("trailer/").unwrap(),
- &vec!["https://base.example/atrailer/".to_string()]
+ &vec![Url::parse("https://base.example/atrailer/").unwrap()]
);
// TODO: I'd be good to assert that warning was shown
}
@@ -1230,7 +1230,7 @@ mod tests {
.unwrap_or_else(|err| panic!("ImportMap::resolve failed: {:?}", err));
let resolved_url =
maybe_url.unwrap_or_else(|| panic!("Unexpected None resolved URL"));
- assert_eq!(resolved_url, expected_url.to_string());
+ assert_eq!(resolved_url.as_str(), expected_url);
}
#[test]