fix: improve auto-imports for npm packages (#27224)

Improves auto-imports when using `"nodeModulesDir": "auto"`
This commit is contained in:
David Sherret 2024-12-04 12:05:34 -05:00 committed by Bartek Iwańczuk
parent f32c836520
commit a34839e9d0
No known key found for this signature in database
GPG key ID: 0C6BCDDC3B3AD750
7 changed files with 122 additions and 23 deletions

View file

@ -236,8 +236,21 @@ impl NpmPackageFsResolver for LocalNpmPackageResolver {
else {
return Ok(None);
};
let folder_name = folder_path.parent().unwrap().to_string_lossy();
Ok(get_package_folder_id_from_folder_name(&folder_name))
// ex. project/node_modules/.deno/preact@10.24.3/node_modules/preact/
let Some(node_modules_ancestor) = folder_path
.ancestors()
.find(|ancestor| ancestor.ends_with("node_modules"))
else {
return Ok(None);
};
let Some(folder_name) =
node_modules_ancestor.parent().and_then(|p| p.file_name())
else {
return Ok(None);
};
Ok(get_package_folder_id_from_folder_name(
&folder_name.to_string_lossy(),
))
}
async fn cache_packages(&self) -> Result<(), AnyError> {