From 48da3c17ea905f50b82948e6f94795e1589f852e Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:23:32 -0700 Subject: fix(add): Handle packages without root exports (#25102) Fixes #24607. This PR makes the logic that caches top level dependencies (things present in import map) smarter, so we handle JSR dependencies without root exports. --- cli/tools/registry/pm.rs | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'cli/tools/registry/pm.rs') diff --git a/cli/tools/registry/pm.rs b/cli/tools/registry/pm.rs index 3cdef071f..87a5ea69a 100644 --- a/cli/tools/registry/pm.rs +++ b/cli/tools/registry/pm.rs @@ -1,5 +1,9 @@ // Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. +mod cache_deps; + +pub use cache_deps::cache_top_level_deps; + use std::borrow::Cow; use std::path::Path; use std::path::PathBuf; @@ -236,13 +240,16 @@ pub async fn add( let package_futures = package_reqs .into_iter() - .map(move |package_req| { - find_package_and_select_version_for_req( - jsr_resolver.clone(), - npm_resolver.clone(), - package_req, - ) - .boxed_local() + .map({ + let jsr_resolver = jsr_resolver.clone(); + move |package_req| { + find_package_and_select_version_for_req( + jsr_resolver.clone(), + npm_resolver.clone(), + package_req, + ) + .boxed_local() + } }) .collect::>(); @@ -350,7 +357,7 @@ pub async fn add( // make a new CliFactory to pick up the updated config file let cli_factory = CliFactory::from_flags(flags); // cache deps - crate::module_loader::load_top_level_deps(&cli_factory).await?; + cache_deps::cache_top_level_deps(&cli_factory, Some(jsr_resolver)).await?; Ok(()) } @@ -597,7 +604,7 @@ pub async fn remove( // Update deno.lock node_resolver::PackageJsonThreadLocalCache::clear(); let cli_factory = CliFactory::from_flags(flags); - crate::module_loader::load_top_level_deps(&cli_factory).await?; + cache_deps::cache_top_level_deps(&cli_factory, None).await?; } Ok(()) -- cgit v1.2.3