fix(utils): fix cross-platform root detection in findPackageRoot

Improve the findPackageRoot function to correctly detect filesystem root on all platforms by checking if dirname returns the same path, replacing the Unix-specific '/' check.
This commit is contained in:
jgor20
2026-01-05 01:09:00 +00:00
parent e6027ec5a6
commit ff188f5cf6

View File

@@ -41,12 +41,17 @@ export function extractModulePath(error) {
export function findPackageRoot(nodeFilePath) {
// Walk up from the .node file to find package.json
let dir = dirname(nodeFilePath);
while (dir && dir !== '/') {
while (dir) {
const packageJsonPath = join(dir, 'package.json');
if (existsSync(packageJsonPath)) {
return dir;
}
dir = dirname(dir);
const parentDir = dirname(dir);
// Stop when we've reached the filesystem root (dirname returns same path)
if (parentDir === dir) {
break;
}
dir = parentDir;
}
return null;
}