summaryrefslogtreecommitdiff
path: root/cli/npm/resolvers/mod.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-04-06 21:41:19 -0400
committerGitHub <noreply@github.com>2023-04-06 21:41:19 -0400
commit5c7f76c570bc099c4e60b38443194c1890808a7f (patch)
tree99d5ebed160929d6812346f60ec902284e8f83af /cli/npm/resolvers/mod.rs
parent0dca0c5196249c5f947de9ced572967872c0ad6e (diff)
fix(npm): reload an npm package's dependency's information when version not found (#18622)
This reloads an npm package's dependency's information when a version/version req/tag is not found. This PR applies only to dependencies of npm packages. It does NOT yet cause npm specifiers to have their dependency information cache busted. That requires a different solution, but this should help cache bust in more scenarios. Part of #16901, but doesn't close it yet
Diffstat (limited to 'cli/npm/resolvers/mod.rs')
-rw-r--r--cli/npm/resolvers/mod.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs
index c958743dc..a490dbf3f 100644
--- a/cli/npm/resolvers/mod.rs
+++ b/cli/npm/resolvers/mod.rs
@@ -15,6 +15,7 @@ use deno_core::parking_lot::Mutex;
use deno_core::serde_json;
use deno_core::url::Url;
use deno_npm::resolution::NpmResolutionSnapshot;
+use deno_npm::resolution::PackageReqNotFoundError;
use deno_npm::NpmPackageId;
use deno_runtime::deno_node::NodePermissions;
use deno_runtime::deno_node::NodeResolutionMode;
@@ -82,14 +83,14 @@ impl NpmPackageResolver {
pub fn resolve_pkg_id_from_pkg_req(
&self,
req: &NpmPackageReq,
- ) -> Result<NpmPackageId, AnyError> {
+ ) -> Result<NpmPackageId, PackageReqNotFoundError> {
self.resolution.resolve_pkg_id_from_pkg_req(req)
}
pub fn pkg_req_ref_to_nv_ref(
&self,
req_ref: NpmPackageReqReference,
- ) -> Result<NpmPackageNvReference, AnyError> {
+ ) -> Result<NpmPackageNvReference, PackageReqNotFoundError> {
self.resolution.pkg_req_ref_to_nv_ref(req_ref)
}
@@ -225,10 +226,8 @@ impl NpmPackageResolver {
&self,
) -> Result<(), AnyError> {
// add and ensure this isn't added to the lockfile
- self
- .resolution
- .add_package_reqs(vec![NpmPackageReq::from_str("@types/node").unwrap()])
- .await?;
+ let package_reqs = vec![NpmPackageReq::from_str("@types/node").unwrap()];
+ self.resolution.add_package_reqs(package_reqs).await?;
self.fs_resolver.cache_packages().await?;
Ok(())