mirror of
https://github.com/denoland/deno.git
synced 2025-01-03 04:48:52 -05:00
fix(lock): only store integrities for http: and https: imports (#16558)
This commit is contained in:
parent
ed521850af
commit
2c72e8d5f4
6 changed files with 30 additions and 6 deletions
|
@ -222,6 +222,9 @@ impl Lockfile {
|
|||
specifier: &str,
|
||||
code: &str,
|
||||
) -> bool {
|
||||
if !(specifier.starts_with("http:") || specifier.starts_with("https:")) {
|
||||
return true;
|
||||
}
|
||||
if self.overwrite {
|
||||
// In case --lock-write is specified check always passes
|
||||
self.insert(specifier, code);
|
||||
|
@ -247,9 +250,6 @@ impl Lockfile {
|
|||
/// Checks the given module is included, if so verify the checksum. If module
|
||||
/// is not included, insert it.
|
||||
fn check_or_insert(&mut self, specifier: &str, code: &str) -> bool {
|
||||
if specifier.starts_with("file:") {
|
||||
return true;
|
||||
}
|
||||
if let Some(lockfile_checksum) = self.content.remote.get(specifier) {
|
||||
let compiled_checksum = crate::checksum::gen(&[code.as_bytes()]);
|
||||
lockfile_checksum == &compiled_checksum
|
||||
|
@ -260,9 +260,6 @@ impl Lockfile {
|
|||
}
|
||||
|
||||
fn insert(&mut self, specifier: &str, code: &str) {
|
||||
if specifier.starts_with("file:") {
|
||||
return;
|
||||
}
|
||||
let checksum = crate::checksum::gen(&[code.as_bytes()]);
|
||||
self.content.remote.insert(specifier.to_string(), checksum);
|
||||
self.has_content_changed = true;
|
||||
|
|
|
@ -686,6 +686,12 @@ itest!(lock_v2_check_err2 {
|
|||
http_server: true,
|
||||
});
|
||||
|
||||
itest!(lock_only_http_and_https {
|
||||
args: "run --lock=run/lock_only_http_and_https/deno.lock run/lock_only_http_and_https/main.ts",
|
||||
output: "run/lock_only_http_and_https/main.out",
|
||||
http_server: true,
|
||||
});
|
||||
|
||||
itest!(mts_dmts_mjs {
|
||||
args: "run subdir/import.mts",
|
||||
output: "run/mts_dmts_mjs.out",
|
||||
|
|
3
cli/tests/testdata/run/lock_only_http_and_https/b.ts
vendored
Normal file
3
cli/tests/testdata/run/lock_only_http_and_https/b.ts
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
export function b() {
|
||||
return "b";
|
||||
}
|
7
cli/tests/testdata/run/lock_only_http_and_https/deno.lock
vendored
Normal file
7
cli/tests/testdata/run/lock_only_http_and_https/deno.lock
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"version": "2",
|
||||
"remote": {
|
||||
"http://127.0.0.1:4545/run/003_relative_import.ts": "a1572e8fd2c2712b33f04aed2561505b5feb2c8696f1f2cded3de7127931b97e",
|
||||
"http://127.0.0.1:4545/subdir/print_hello.ts": "fa6692c8f9ff3fb107e773c3ece5274e9d08be282867a1e3ded1d9c00fcaa63c"
|
||||
}
|
||||
}
|
5
cli/tests/testdata/run/lock_only_http_and_https/main.out
vendored
Normal file
5
cli/tests/testdata/run/lock_only_http_and_https/main.out
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
Download http://127.0.0.1:4545/run/003_relative_import.ts
|
||||
Download http://127.0.0.1:4545/subdir/print_hello.ts
|
||||
Hello
|
||||
[Function: a]
|
||||
[Function: b]
|
6
cli/tests/testdata/run/lock_only_http_and_https/main.ts
vendored
Normal file
6
cli/tests/testdata/run/lock_only_http_and_https/main.ts
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
import "http://127.0.0.1:4545/run/003_relative_import.ts";
|
||||
import { a } from "data:application/typescript;base64,ZW51bSBBIHsKICBBLAogIEIsCiAgQywKIH0KIAogZXhwb3J0IGZ1bmN0aW9uIGEoKSB7CiAgIHRocm93IG5ldyBFcnJvcihgSGVsbG8gJHtBLkN9YCk7CiB9CiA=";
|
||||
import { b } from "./b.ts";
|
||||
|
||||
console.log(a);
|
||||
console.log(b);
|
Loading…
Reference in a new issue