Skip to content

Commit a4f9444

Browse files
committed
feat(packageresolution): add lockfileVersion 2+ packages support
1 parent 75c4f0d commit a4f9444

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/getPackageResolution.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,17 @@ export function getPackageResolution({
106106
}
107107
}
108108
lockFileStack.reverse()
109-
const relevantStackEntry = lockFileStack.find(
110-
(entry) =>
111-
entry.dependencies && packageDetails.name in entry.dependencies,
112-
)
113-
const pkg = relevantStackEntry.dependencies[packageDetails.name]
109+
const relevantStackEntry = lockFileStack.find((entry) => {
110+
if (entry.dependencies) {
111+
return entry.dependencies && packageDetails.name in entry.dependencies
112+
} else if (entry.packages) {
113+
return entry.packages && packageDetails.path in entry.packages
114+
}
115+
throw new Error("Cannot find dependencies or packages in lockfile")
116+
})
117+
const pkg = relevantStackEntry.dependencies
118+
? relevantStackEntry.dependencies[packageDetails.name]
119+
: relevantStackEntry.packages[packageDetails.path]
114120
return pkg.resolved || pkg.version || pkg.from
115121
}
116122
}
@@ -120,7 +126,6 @@ if (require.main === module) {
120126
if (!packageDetails) {
121127
console.error(`Can't find package ${process.argv[2]}`)
122128
process.exit(1)
123-
throw new Error()
124129
}
125130
console.log(
126131
getPackageResolution({

0 commit comments

Comments
 (0)