@pnpm/hooks.read-package-hook
Advanced tools
Comparing version 4.0.1 to 4.0.2
@@ -18,15 +18,5 @@ "use strict"; | ||
.map((override) => { | ||
let linkTarget; | ||
if (override.newPref.startsWith('link:')) { | ||
const pkgPath = override.newPref.substring(5); | ||
linkTarget = path_1.default.isAbsolute(pkgPath) ? pkgPath : path_1.default.join(rootDir, pkgPath); | ||
} | ||
let linkFileTarget; | ||
if (override.newPref.startsWith('file:')) { | ||
linkFileTarget = override.newPref.substring(5); | ||
} | ||
return { | ||
...override, | ||
linkTarget, | ||
linkFileTarget, | ||
localTarget: createLocalTarget(override, rootDir), | ||
}; | ||
@@ -52,2 +42,18 @@ })); | ||
} | ||
function createLocalTarget(override, rootDir) { | ||
let protocol; | ||
if (override.newPref.startsWith('file:')) { | ||
protocol = 'file:'; | ||
} | ||
else if (override.newPref.startsWith('link:')) { | ||
protocol = 'link:'; | ||
} | ||
else { | ||
return undefined; | ||
} | ||
const pkgPath = override.newPref.substring(protocol.length); | ||
const specifiedViaRelativePath = !path_1.default.isAbsolute(pkgPath); | ||
const absolutePath = specifiedViaRelativePath ? path_1.default.join(rootDir, pkgPath) : pkgPath; | ||
return { absolutePath, specifiedViaRelativePath, protocol }; | ||
} | ||
function overrideDepsOfPkg({ manifest, dir }, versionOverrides, genericVersionOverrides) { | ||
@@ -69,13 +75,14 @@ if (manifest.dependencies != null) | ||
continue; | ||
if (versionOverride.linkTarget && dir) { | ||
deps[versionOverride.targetPkg.name] = `link:${(0, normalize_path_1.default)(path_1.default.relative(dir, versionOverride.linkTarget))}`; | ||
if (versionOverride.localTarget) { | ||
deps[versionOverride.targetPkg.name] = `${versionOverride.localTarget.protocol}${resolveLocalOverride(versionOverride.localTarget, dir)}`; | ||
continue; | ||
} | ||
if (versionOverride.linkFileTarget) { | ||
deps[versionOverride.targetPkg.name] = `file:${versionOverride.linkFileTarget}`; | ||
continue; | ||
} | ||
deps[versionOverride.targetPkg.name] = versionOverride.newPref; | ||
} | ||
} | ||
function resolveLocalOverride({ specifiedViaRelativePath, absolutePath }, pkgDir) { | ||
return specifiedViaRelativePath && pkgDir | ||
? (0, normalize_path_1.default)(path_1.default.relative(pkgDir, absolutePath)) | ||
: absolutePath; | ||
} | ||
function pickMostSpecificVersionOverride(versionOverrides) { | ||
@@ -82,0 +89,0 @@ return versionOverrides.sort((a, b) => (0, isIntersectingRange_1.isIntersectingRange)(b.targetPkg.pref ?? '', a.targetPkg.pref ?? '') ? -1 : 1)[0]; |
{ | ||
"name": "@pnpm/hooks.read-package-hook", | ||
"version": "4.0.1", | ||
"version": "4.0.2", | ||
"description": "Creates the default package reader hook used by pnpm", | ||
@@ -28,7 +28,7 @@ "main": "lib/index.js", | ||
"semver": "^7.6.0", | ||
"@pnpm/error": "6.0.1", | ||
"@pnpm/parse-wanted-dependency": "6.0.0", | ||
"@pnpm/matcher": "6.0.0", | ||
"@pnpm/error": "6.0.0", | ||
"@pnpm/parse-overrides": "5.0.0", | ||
"@pnpm/parse-wanted-dependency": "6.0.0", | ||
"@pnpm/types": "10.0.0" | ||
"@pnpm/types": "10.0.0", | ||
"@pnpm/parse-overrides": "5.0.1" | ||
}, | ||
@@ -40,3 +40,3 @@ "devDependencies": { | ||
"@yarnpkg/core": "4.0.3", | ||
"@pnpm/hooks.read-package-hook": "4.0.1" | ||
"@pnpm/hooks.read-package-hook": "4.0.2" | ||
}, | ||
@@ -43,0 +43,0 @@ "funding": "https://opencollective.com/pnpm", |
Sorry, the diff of this file is not supported yet
23390
243
+ Added@pnpm/error@6.0.1(transitive)
+ Added@pnpm/parse-overrides@5.0.1(transitive)
- Removed@pnpm/error@6.0.0(transitive)
- Removed@pnpm/parse-overrides@5.0.0(transitive)
Updated@pnpm/error@6.0.1
Updated@pnpm/parse-overrides@5.0.1