diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2023-04-06 21:41:19 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-06 21:41:19 -0400 |
commit | 5c7f76c570bc099c4e60b38443194c1890808a7f (patch) | |
tree | 99d5ebed160929d6812346f60ec902284e8f83af /cli/npm/resolvers/mod.rs | |
parent | 0dca0c5196249c5f947de9ced572967872c0ad6e (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.rs | 11 |
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(()) |