mirror of
https://github.com/denoland/deno.git
synced 2025-01-11 16:42:21 -05:00
fix: write lockfile in deno info
(#22272)
This commit is contained in:
parent
7531b3500a
commit
15c64365a2
3 changed files with 33 additions and 5 deletions
|
@ -1784,8 +1784,9 @@ TypeScript compiler cache: Subdirectory containing TS compiler output.",
|
||||||
.arg(no_config_arg())
|
.arg(no_config_arg())
|
||||||
.arg(no_remote_arg())
|
.arg(no_remote_arg())
|
||||||
.arg(no_npm_arg())
|
.arg(no_npm_arg())
|
||||||
.arg(no_lock_arg())
|
|
||||||
.arg(lock_arg())
|
.arg(lock_arg())
|
||||||
|
.arg(lock_write_arg())
|
||||||
|
.arg(no_lock_arg())
|
||||||
.arg(config_arg())
|
.arg(config_arg())
|
||||||
.arg(import_map_arg())
|
.arg(import_map_arg())
|
||||||
.arg(node_modules_dir_arg())
|
.arg(node_modules_dir_arg())
|
||||||
|
@ -3506,8 +3507,7 @@ fn info_parse(flags: &mut Flags, matches: &mut ArgMatches) {
|
||||||
location_arg_parse(flags, matches);
|
location_arg_parse(flags, matches);
|
||||||
ca_file_arg_parse(flags, matches);
|
ca_file_arg_parse(flags, matches);
|
||||||
node_modules_and_vendor_dir_arg_parse(flags, matches);
|
node_modules_and_vendor_dir_arg_parse(flags, matches);
|
||||||
lock_arg_parse(flags, matches);
|
lock_args_parse(flags, matches);
|
||||||
no_lock_arg_parse(flags, matches);
|
|
||||||
no_remote_arg_parse(flags, matches);
|
no_remote_arg_parse(flags, matches);
|
||||||
no_npm_arg_parse(flags, matches);
|
no_npm_arg_parse(flags, matches);
|
||||||
let json = matches.get_flag("json");
|
let json = matches.get_flag("json");
|
||||||
|
|
|
@ -7,6 +7,7 @@ use std::fmt::Write;
|
||||||
|
|
||||||
use deno_ast::ModuleSpecifier;
|
use deno_ast::ModuleSpecifier;
|
||||||
use deno_core::anyhow::bail;
|
use deno_core::anyhow::bail;
|
||||||
|
use deno_core::anyhow::Context;
|
||||||
use deno_core::error::AnyError;
|
use deno_core::error::AnyError;
|
||||||
use deno_core::resolve_url_or_path;
|
use deno_core::resolve_url_or_path;
|
||||||
use deno_core::serde_json;
|
use deno_core::serde_json;
|
||||||
|
@ -66,8 +67,13 @@ pub async fn info(flags: Flags, info_flags: InfoFlags) -> Result<(), AnyError> {
|
||||||
.create_graph_with_loader(GraphKind::All, vec![specifier], &mut loader)
|
.create_graph_with_loader(GraphKind::All, vec![specifier], &mut loader)
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
if let Some(lockfile) = maybe_lockfile {
|
// If there is a lockfile...
|
||||||
graph_lock_or_exit(&graph, &mut lockfile.lock());
|
if let Some(lockfile) = &maybe_lockfile {
|
||||||
|
let mut lockfile = lockfile.lock();
|
||||||
|
// validate the integrity of all the modules
|
||||||
|
graph_lock_or_exit(&graph, &mut lockfile);
|
||||||
|
// update it with anything new
|
||||||
|
lockfile.write().context("Failed writing lockfile.")?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if info_flags.json {
|
if info_flags.json {
|
||||||
|
|
|
@ -30,6 +30,28 @@ fn info_with_compiled_source() {
|
||||||
assert_eq!(output.stderr(), "");
|
assert_eq!(output.stderr(), "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn info_lock_write() {
|
||||||
|
let context = TestContextBuilder::new().use_http_server().build();
|
||||||
|
|
||||||
|
context.temp_dir().write("deno.json", "{}");
|
||||||
|
|
||||||
|
let module_path = "http://127.0.0.1:4545/run/048_media_types_jsx.ts";
|
||||||
|
|
||||||
|
let output = context
|
||||||
|
.new_command()
|
||||||
|
.current_dir(context.temp_dir().path())
|
||||||
|
.args_vec(["info", module_path])
|
||||||
|
.run();
|
||||||
|
output.assert_exit_code(0);
|
||||||
|
output.skip_output_check();
|
||||||
|
|
||||||
|
assert!(
|
||||||
|
context.temp_dir().path().join("deno.lock").exists(),
|
||||||
|
"missing deno.lock"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
itest!(multiple_imports {
|
itest!(multiple_imports {
|
||||||
args: "info http://127.0.0.1:4545/run/019_media_types.ts",
|
args: "info http://127.0.0.1:4545/run/019_media_types.ts",
|
||||||
output: "info/multiple_imports.out",
|
output: "info/multiple_imports.out",
|
||||||
|
|
Loading…
Reference in a new issue