From 334b7f730a3de3142cbd12b454a06b1d4909752c Mon Sep 17 00:00:00 2001 From: jamsch Date: Thu, 6 Aug 2020 16:31:18 +1200 Subject: [PATCH] update(getPackageResolution) take in to account non-standard versioning on Yarn lockfiles --- src/getPackageResolution.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/getPackageResolution.ts b/src/getPackageResolution.ts index 08a952e6..1627e32c 100644 --- a/src/getPackageResolution.ts +++ b/src/getPackageResolution.ts @@ -37,9 +37,14 @@ export function getPackageResolution({ )).version as string const entries = Object.entries(appLockFile.object).filter( - ([k, v]) => - k.startsWith(packageDetails.name + "@") && - v.version === installedVersion, + ([pkgNameAndVersion, v]) => { + if (pkgNameAndVersion.startsWith(packageDetails.name + "@") && v.version === installedVersion) { + return true + } + // Non-standard versioning. Yarn resolves "package@1.2.3+3d74b79d" as version "1.2.3" + // while installedVersion (from package.json) is "1.2.3+3d74b79d" + return pkgNameAndVersion === packageDetails.name + "@" + installedVersion; + } ) const resolutions = entries.map(([_, v]) => {