summaryrefslogtreecommitdiff
path: root/cli/tools/registry/pm.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-07-23 19:00:48 -0400
committerGitHub <noreply@github.com>2024-07-23 19:00:48 -0400
commit9114a2df69da9318c4e10887553b7daf77b0fa16 (patch)
tree2309817e74485f9fe8f7b79238afa026070b79df /cli/tools/registry/pm.rs
parent6055629ee7f48a4e887392ccac13788aa4008249 (diff)
fix(upgrade): do not error if config in cwd invalid (#24689)
``` > deno upgrade error: Unsupported lockfile version 'invalid'. Try upgrading Deno or recreating the lockfile. V:\scratch > V:\deno\target\debug\deno upgrade Looking up latest version Local deno version 1.45.3 is the most recent release ``` Closes #24517 Closes #20729
Diffstat (limited to 'cli/tools/registry/pm.rs')
-rw-r--r--cli/tools/registry/pm.rs19
1 files changed, 11 insertions, 8 deletions
diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs
index 4573f196d..233e68240 100644
--- a/cli/tools/registry/pm.rs
+++ b/cli/tools/registry/pm.rs
@@ -119,9 +119,9 @@ impl DenoOrPackageJson {
/// creates a `deno.json` file - in this case
/// we also return a new `CliFactory` that knows about
/// the new config
- fn from_flags(flags: Flags) -> Result<(Self, CliFactory), AnyError> {
- let factory = CliFactory::from_flags(flags.clone())?;
- let options = factory.cli_options();
+ fn from_flags(flags: Arc<Flags>) -> Result<(Self, CliFactory), AnyError> {
+ let factory = CliFactory::from_flags(flags.clone());
+ let options = factory.cli_options()?;
let start_dir = &options.start_dir;
match (start_dir.maybe_deno_json(), start_dir.maybe_pkg_json()) {
@@ -142,8 +142,8 @@ impl DenoOrPackageJson {
.context("Failed to create deno.json file")?;
drop(factory); // drop to prevent use
log::info!("Created deno.json configuration file.");
- let factory = CliFactory::from_flags(flags.clone())?;
- let options = factory.cli_options().clone();
+ let factory = CliFactory::from_flags(flags.clone());
+ let options = factory.cli_options()?.clone();
let start_dir = &options.start_dir;
Ok((
DenoOrPackageJson::Deno(
@@ -175,7 +175,10 @@ fn package_json_dependency_entry(
}
}
-pub async fn add(flags: Flags, add_flags: AddFlags) -> Result<(), AnyError> {
+pub async fn add(
+ flags: Arc<Flags>,
+ add_flags: AddFlags,
+) -> Result<(), AnyError> {
let (config_file, cli_factory) =
DenoOrPackageJson::from_flags(flags.clone())?;
@@ -307,9 +310,9 @@ pub async fn add(flags: Flags, add_flags: AddFlags) -> Result<(), AnyError> {
// clear the previously cached package.json from memory before reloading it
deno_node::PackageJsonThreadLocalCache::clear();
// make a new CliFactory to pick up the updated config file
- let cli_factory = CliFactory::from_flags(flags)?;
+ let cli_factory = CliFactory::from_flags(flags);
// cache deps
- if cli_factory.cli_options().enable_future_features() {
+ if cli_factory.cli_options()?.enable_future_features() {
crate::module_loader::load_top_level_deps(&cli_factory).await?;
}