mirror of
https://github.com/denoland/deno.git
synced 2025-01-22 06:09:25 -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,
|
specifier: &str,
|
||||||
code: &str,
|
code: &str,
|
||||||
) -> bool {
|
) -> bool {
|
||||||
|
if !(specifier.starts_with("http:") || specifier.starts_with("https:")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
if self.overwrite {
|
if self.overwrite {
|
||||||
// In case --lock-write is specified check always passes
|
// In case --lock-write is specified check always passes
|
||||||
self.insert(specifier, code);
|
self.insert(specifier, code);
|
||||||
|
@ -247,9 +250,6 @@ impl Lockfile {
|
||||||
/// Checks the given module is included, if so verify the checksum. If module
|
/// Checks the given module is included, if so verify the checksum. If module
|
||||||
/// is not included, insert it.
|
/// is not included, insert it.
|
||||||
fn check_or_insert(&mut self, specifier: &str, code: &str) -> bool {
|
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) {
|
if let Some(lockfile_checksum) = self.content.remote.get(specifier) {
|
||||||
let compiled_checksum = crate::checksum::gen(&[code.as_bytes()]);
|
let compiled_checksum = crate::checksum::gen(&[code.as_bytes()]);
|
||||||
lockfile_checksum == &compiled_checksum
|
lockfile_checksum == &compiled_checksum
|
||||||
|
@ -260,9 +260,6 @@ impl Lockfile {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn insert(&mut self, specifier: &str, code: &str) {
|
fn insert(&mut self, specifier: &str, code: &str) {
|
||||||
if specifier.starts_with("file:") {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
let checksum = crate::checksum::gen(&[code.as_bytes()]);
|
let checksum = crate::checksum::gen(&[code.as_bytes()]);
|
||||||
self.content.remote.insert(specifier.to_string(), checksum);
|
self.content.remote.insert(specifier.to_string(), checksum);
|
||||||
self.has_content_changed = true;
|
self.has_content_changed = true;
|
||||||
|
|
|
@ -686,6 +686,12 @@ itest!(lock_v2_check_err2 {
|
||||||
http_server: true,
|
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 {
|
itest!(mts_dmts_mjs {
|
||||||
args: "run subdir/import.mts",
|
args: "run subdir/import.mts",
|
||||||
output: "run/mts_dmts_mjs.out",
|
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
generated
vendored
Normal file
7
cli/tests/testdata/run/lock_only_http_and_https/deno.lock
generated
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…
Add table
Reference in a new issue