Skip to content

Commit 787a6fa

Browse files
committed
coercing semantic package version while searching lockfile entries in yarn.lock
1 parent fe6138b commit 787a6fa

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/coerceSemVer.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import semver from "semver"
2+
3+
export function coerceSemVer(version: string): string | null {
4+
return semver.coerce(version)?.version || null
5+
}

src/getPackageResolution.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { parse as parseYarnLockFile } from "@yarnpkg/lockfile"
66
import yaml from "yaml"
77
import findWorkspaceRoot from "find-yarn-workspace-root"
88
import { getPackageVersion } from "./getPackageVersion"
9+
import { coerceSemVer } from "./coerceSemVer"
910

1011
export function getPackageResolution({
1112
packageDetails,
@@ -54,7 +55,7 @@ export function getPackageResolution({
5455
([k, v]) =>
5556
k.startsWith(packageDetails.name + "@") &&
5657
// @ts-ignore
57-
v.version === installedVersion,
58+
coerceSemVer(v.version) === coerceSemVer(installedVersion),
5859
)
5960

6061
const resolutions = entries.map(([_, v]) => {
@@ -120,7 +121,6 @@ if (require.main === module) {
120121
if (!packageDetails) {
121122
console.error(`Can't find package ${process.argv[2]}`)
122123
process.exit(1)
123-
throw new Error()
124124
}
125125
console.log(
126126
getPackageResolution({

0 commit comments

Comments
 (0)