diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-10-02 21:17:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-02 21:17:39 +0100 |
commit | cac28b52621975137b86d4fd6efc32cecc10d682 (patch) | |
tree | 6338163b4be9d578dbe046a95c90cea274026b15 /cli/npm/managed/mod.rs | |
parent | bbd4ae1bc12dc6b34d4a455015096b7113a5cec5 (diff) |
feat(byonm): support `deno run npm:<package>` when package is not in package.json (#25981)
Closes https://github.com/denoland/deno/issues/25905
Diffstat (limited to 'cli/npm/managed/mod.rs')
-rw-r--r-- | cli/npm/managed/mod.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cli/npm/managed/mod.rs b/cli/npm/managed/mod.rs index 6f6fa4bf8..7bb254cb5 100644 --- a/cli/npm/managed/mod.rs +++ b/cli/npm/managed/mod.rs @@ -51,6 +51,7 @@ use self::resolvers::NpmPackageFsResolver; use super::CliNpmResolver; use super::InnerCliNpmResolverRef; +use super::ResolvePkgFolderFromDenoReqError; mod cache; mod registry; @@ -649,9 +650,13 @@ impl CliNpmResolver for ManagedCliNpmResolver { &self, req: &PackageReq, _referrer: &ModuleSpecifier, - ) -> Result<PathBuf, AnyError> { - let pkg_id = self.resolve_pkg_id_from_pkg_req(req)?; - self.resolve_pkg_folder_from_pkg_id(&pkg_id) + ) -> Result<PathBuf, ResolvePkgFolderFromDenoReqError> { + let pkg_id = self + .resolve_pkg_id_from_pkg_req(req) + .map_err(|err| ResolvePkgFolderFromDenoReqError::Managed(err.into()))?; + self + .resolve_pkg_folder_from_pkg_id(&pkg_id) + .map_err(ResolvePkgFolderFromDenoReqError::Managed) } fn check_state_hash(&self) -> Option<u64> { |