From 3d841acf4861220553614473538de935d24bcb21 Mon Sep 17 00:00:00 2001 From: nokazn <41154684+nokazn@users.noreply.github.com> Date: Fri, 19 Apr 2024 04:48:15 +0900 Subject: fix(cli): avoid `deno add` and `deno vendor` errors when deno.json is empty (#23439) --- cli/tools/registry/pm.rs | 10 ++++++++-- cli/tools/vendor/mod.rs | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'cli/tools') diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index a69a474e7..699b476cb 100644 --- a/cli/tools/registry/pm.rs +++ b/cli/tools/registry/pm.rs @@ -109,8 +109,14 @@ pub async fn add(flags: Flags, add_flags: AddFlags) -> Result<(), AnyError> { } } - let config_file_contents = - tokio::fs::read_to_string(&config_file_path).await.unwrap(); + let config_file_contents = { + let contents = tokio::fs::read_to_string(&config_file_path).await.unwrap(); + if contents.trim().is_empty() { + "{}\n".into() + } else { + contents + } + }; let ast = jsonc_parser::parse_to_ast( &config_file_contents, &Default::default(), diff --git a/cli/tools/vendor/mod.rs b/cli/tools/vendor/mod.rs index 2abdf6e99..cf10b77c7 100644 --- a/cli/tools/vendor/mod.rs +++ b/cli/tools/vendor/mod.rs @@ -310,6 +310,7 @@ fn update_config_text( ) -> Result { use jsonc_parser::ast::ObjectProp; use jsonc_parser::ast::Value; + let text = if text.trim().is_empty() { "{}\n" } else { text }; let ast = jsonc_parser::parse_to_ast(text, &Default::default(), &Default::default())?; let obj = match ast.value { -- cgit v1.2.3