@pnpm/hooks.read-package-hook
Advanced tools
Comparing version 1000.0.3 to 1000.0.4
@@ -10,2 +10,3 @@ "use strict"; | ||
const partition_1 = __importDefault(require("ramda/src/partition")); | ||
const semver_peer_range_1 = require("@pnpm/semver.peer-range"); | ||
const normalize_path_1 = __importDefault(require("normalize-path")); | ||
@@ -45,10 +46,16 @@ const isIntersectingRange_1 = require("./isIntersectingRange"); | ||
const { dependencies, optionalDependencies, devDependencies, peerDependencies } = manifest; | ||
for (const deps of [dependencies, optionalDependencies, devDependencies, peerDependencies]) { | ||
const _overrideDeps = overrideDeps.bind(null, { versionOverrides, genericVersionOverrides, dir }); | ||
for (const deps of [dependencies, optionalDependencies, devDependencies]) { | ||
if (deps) { | ||
overrideDeps(versionOverrides, genericVersionOverrides, deps, dir); | ||
_overrideDeps(deps, undefined); | ||
} | ||
} | ||
if (peerDependencies) { | ||
if (!manifest.dependencies) | ||
manifest.dependencies = {}; | ||
_overrideDeps(manifest.dependencies, peerDependencies); | ||
} | ||
} | ||
function overrideDeps(versionOverrides, genericVersionOverrides, deps, dir) { | ||
for (const [name, pref] of Object.entries(deps)) { | ||
function overrideDeps({ versionOverrides, genericVersionOverrides, dir }, deps, peerDeps) { | ||
for (const [name, pref] of Object.entries(peerDeps ?? deps)) { | ||
const versionOverride = pickMostSpecificVersionOverride(versionOverrides.filter(({ targetPkg }) => targetPkg.name === name && (0, isIntersectingRange_1.isIntersectingRange)(targetPkg.pref, pref))) ?? | ||
@@ -59,10 +66,19 @@ pickMostSpecificVersionOverride(genericVersionOverrides.filter(({ targetPkg }) => targetPkg.name === name && (0, isIntersectingRange_1.isIntersectingRange)(targetPkg.pref, pref))); | ||
if (versionOverride.newPref === '-') { | ||
delete deps[versionOverride.targetPkg.name]; | ||
if (peerDeps) { | ||
delete peerDeps[versionOverride.targetPkg.name]; | ||
} | ||
else { | ||
delete deps[versionOverride.targetPkg.name]; | ||
} | ||
continue; | ||
} | ||
if (versionOverride.localTarget) { | ||
deps[versionOverride.targetPkg.name] = `${versionOverride.localTarget.protocol}${resolveLocalOverride(versionOverride.localTarget, dir)}`; | ||
continue; | ||
const newPref = versionOverride.localTarget | ||
? `${versionOverride.localTarget.protocol}${resolveLocalOverride(versionOverride.localTarget, dir)}` | ||
: versionOverride.newPref; | ||
if (peerDeps == null || !(0, semver_peer_range_1.isValidPeerRange)(newPref)) { | ||
deps[versionOverride.targetPkg.name] = newPref; | ||
} | ||
deps[versionOverride.targetPkg.name] = versionOverride.newPref; | ||
else if ((0, semver_peer_range_1.isValidPeerRange)(newPref)) { | ||
peerDeps[versionOverride.targetPkg.name] = newPref; | ||
} | ||
} | ||
@@ -69,0 +85,0 @@ } |
{ | ||
"name": "@pnpm/hooks.read-package-hook", | ||
"version": "1000.0.3", | ||
"version": "1000.0.4", | ||
"description": "Creates the default package reader hook used by pnpm", | ||
@@ -29,6 +29,7 @@ "main": "lib/index.js", | ||
"@pnpm/error": "1000.0.2", | ||
"@pnpm/matcher": "1000.0.0", | ||
"@pnpm/parse-overrides": "1000.0.2", | ||
"@pnpm/parse-wanted-dependency": "1000.0.0", | ||
"@pnpm/matcher": "1000.0.0", | ||
"@pnpm/types": "1000.1.1" | ||
"@pnpm/types": "1000.1.1", | ||
"@pnpm/semver.peer-range": "1000.0.0", | ||
"@pnpm/parse-wanted-dependency": "1000.0.0" | ||
}, | ||
@@ -40,3 +41,3 @@ "devDependencies": { | ||
"@yarnpkg/core": "4.0.5", | ||
"@pnpm/hooks.read-package-hook": "1000.0.3" | ||
"@pnpm/hooks.read-package-hook": "1000.0.4" | ||
}, | ||
@@ -43,0 +44,0 @@ "funding": "https://opencollective.com/pnpm", |
Sorry, the diff of this file is not supported yet
23833
244
10
+ Added@pnpm/semver.peer-range@1000.0.0(transitive)