summaryrefslogtreecommitdiff
path: root/cli/tools/vendor/build.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-05-09 17:49:16 -0400
committerGitHub <noreply@github.com>2023-05-09 21:49:16 +0000
commit50618fc0bc09ba343a9b143e60f4a9bab1ab2522 (patch)
tree359b987f5fe2394f501775261ed6e7a89d1be66a /cli/tools/vendor/build.rs
parentcb63db459cf0099e2975700cd0f66387b4ecb509 (diff)
fix(vendor): better handling of redirects (#19063)
Closes #17582 Closes #19057
Diffstat (limited to 'cli/tools/vendor/build.rs')
-rw-r--r--cli/tools/vendor/build.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/cli/tools/vendor/build.rs b/cli/tools/vendor/build.rs
index f9df8f078..11a1fb50e 100644
--- a/cli/tools/vendor/build.rs
+++ b/cli/tools/vendor/build.rs
@@ -379,6 +379,54 @@ mod test {
}
#[tokio::test]
+ async fn remote_redirect_entrypoint() {
+ let mut builder = VendorTestBuilder::with_default_setup();
+ let output = builder
+ .with_loader(|loader| {
+ loader
+ .add(
+ "/mod.ts",
+ concat!(
+ "import * as test from 'https://x.nest.land/Yenv@1.0.0/mod.ts';\n",
+ "console.log(test)",
+ ),
+ )
+ .add_redirect("https://x.nest.land/Yenv@1.0.0/mod.ts", "https://arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/mod.ts")
+ .add(
+ "https://arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/mod.ts",
+ "export * from './src/mod.ts'",
+ )
+ .add(
+ "https://arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/src/mod.ts",
+ "export class Test {}",
+ );
+ })
+ .build()
+ .await
+ .unwrap();
+
+ assert_eq!(
+ output.import_map,
+ Some(json!({
+ "imports": {
+ "https://x.nest.land/Yenv@1.0.0/mod.ts": "./arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/mod.ts",
+ "https://arweave.net/": "./arweave.net/"
+ },
+ }))
+ );
+ assert_eq!(
+ output.files,
+ to_file_vec(&[
+ ("/vendor/arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/mod.ts", "export * from './src/mod.ts'"),
+ (
+ "/vendor/arweave.net/VFtWNW3QZ-7__v7c7kck22eFI24OuK1DFzyQHKoZ9AE/src/mod.ts",
+ "export class Test {}",
+ ),
+ ]),
+ );
+ }
+
+ #[tokio::test]
async fn same_target_filename_specifiers() {
let mut builder = VendorTestBuilder::with_default_setup();
let output = builder