diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2024-04-25 10:13:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-25 14:13:55 +0000 |
commit | bc4aa5f901d7bb9d83a18c14ab54ffafe014ccf9 (patch) | |
tree | 86df27cd02933174c7ff0492ac81824621c0be8d /cli/npm/managed/resolvers/local.rs | |
parent | 1a5b6296c5e4d6f9327b9527d94b7ad5d0acbda3 (diff) |
fix(npm): do not panic hitting root dir while resolving npm package (#23556)
Closes https://github.com/denoland/deno/issues/23029
Diffstat (limited to 'cli/npm/managed/resolvers/local.rs')
-rw-r--r-- | cli/npm/managed/resolvers/local.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/cli/npm/managed/resolvers/local.rs b/cli/npm/managed/resolvers/local.rs index 34e0fae09..f8d69d148 100644 --- a/cli/npm/managed/resolvers/local.rs +++ b/cli/npm/managed/resolvers/local.rs @@ -168,8 +168,8 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { }; let package_root_path = self.resolve_package_root(&local_path); let mut current_folder = package_root_path.as_path(); - loop { - current_folder = current_folder.parent().unwrap(); + while let Some(parent_folder) = current_folder.parent() { + current_folder = parent_folder; let node_modules_folder = if current_folder.ends_with("node_modules") { Cow::Borrowed(current_folder) } else { @@ -191,13 +191,15 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver { } if current_folder == self.root_node_modules_path { - bail!( - "could not find package '{}' from referrer '{}'.", - name, - referrer - ); + break; } } + + bail!( + "could not find package '{}' from referrer '{}'.", + name, + referrer + ); } fn resolve_package_folder_from_specifier( |