@pnpm/hooks.read-package-hook
Advanced tools
Comparing version 2.1.1 to 2.1.2
@@ -1,2 +0,2 @@ | ||
import { PackageExtension, ReadPackageHook } from '@pnpm/types'; | ||
import { type PackageExtension, type ReadPackageHook } from '@pnpm/types'; | ||
export declare function createPackageExtender(packageExtensions: Record<string, PackageExtension>): ReadPackageHook; |
@@ -1,2 +0,2 @@ | ||
import { PeerDependencyRules, ReadPackageHook } from '@pnpm/types'; | ||
import { type PeerDependencyRules, type ReadPackageHook } from '@pnpm/types'; | ||
export declare function createPeerDependencyPatcher(peerDependencyRules: PeerDependencyRules): ReadPackageHook; |
@@ -1,2 +0,2 @@ | ||
import { PackageExtension, PeerDependencyRules, ReadPackageHook } from '@pnpm/types'; | ||
import { type PackageExtension, type PeerDependencyRules, type ReadPackageHook } from '@pnpm/types'; | ||
export declare function createReadPackageHook({ ignoreCompatibilityDb, lockfileDir, overrides, packageExtensions, peerDependencyRules, readPackageHook, }: { | ||
@@ -3,0 +3,0 @@ ignoreCompatibilityDb?: boolean; |
@@ -1,2 +0,2 @@ | ||
import { ReadPackageHook } from '@pnpm/types'; | ||
import { type ReadPackageHook } from '@pnpm/types'; | ||
export declare function createVersionsOverrider(overrides: Record<string, string>, rootDir: string): ReadPackageHook; |
@@ -34,6 +34,7 @@ "use strict"; | ||
return ((manifest, dir) => { | ||
overrideDepsOfPkg({ manifest, dir }, versionOverrides.filter(({ parentPkg }) => { | ||
return parentPkg.name === manifest.name && (!parentPkg.pref || semver_1.default.satisfies(manifest.version, parentPkg.pref)); | ||
})); | ||
overrideDepsOfPkg({ manifest, dir }, genericVersionOverrides); | ||
const versionOverridesWithParent = versionOverrides.filter(({ parentPkg }) => { | ||
return (parentPkg.name === manifest.name && | ||
(!parentPkg.pref || semver_1.default.satisfies(manifest.version, parentPkg.pref))); | ||
}); | ||
overrideDepsOfPkg({ manifest, dir }, versionOverridesWithParent, genericVersionOverrides); | ||
return manifest; | ||
@@ -51,18 +52,16 @@ }); | ||
} | ||
function overrideDepsOfPkg({ manifest, dir }, versionOverrides) { | ||
function overrideDepsOfPkg({ manifest, dir }, versionOverrides, genericVersionOverrides) { | ||
if (manifest.dependencies != null) | ||
overrideDeps(versionOverrides, manifest.dependencies, dir); | ||
overrideDeps(versionOverrides, genericVersionOverrides, manifest.dependencies, dir); | ||
if (manifest.optionalDependencies != null) | ||
overrideDeps(versionOverrides, manifest.optionalDependencies, dir); | ||
overrideDeps(versionOverrides, genericVersionOverrides, manifest.optionalDependencies, dir); | ||
if (manifest.devDependencies != null) | ||
overrideDeps(versionOverrides, manifest.devDependencies, dir); | ||
return manifest; | ||
overrideDeps(versionOverrides, genericVersionOverrides, manifest.devDependencies, dir); | ||
} | ||
function overrideDeps(versionOverrides, deps, dir) { | ||
for (const versionOverride of versionOverrides) { | ||
const actual = deps[versionOverride.targetPkg.name]; | ||
if (actual == null) | ||
function overrideDeps(versionOverrides, genericVersionOverrides, deps, dir) { | ||
for (const [name, pref] of Object.entries(deps)) { | ||
const versionOverride = pickMostSpecificVersionOverride(versionOverrides.filter(({ targetPkg }) => targetPkg.name === name && (0, isSubRange_1.isSubRange)(targetPkg.pref, pref))) ?? | ||
pickMostSpecificVersionOverride(genericVersionOverrides.filter(({ targetPkg }) => targetPkg.name === name && (0, isSubRange_1.isSubRange)(targetPkg.pref, pref))); | ||
if (!versionOverride) | ||
continue; | ||
if (!(0, isSubRange_1.isSubRange)(versionOverride.targetPkg.pref, actual)) | ||
continue; | ||
if (versionOverride.linkTarget && dir) { | ||
@@ -79,2 +78,5 @@ deps[versionOverride.targetPkg.name] = `link:${(0, normalize_path_1.default)(path_1.default.relative(dir, versionOverride.linkTarget))}`; | ||
} | ||
function pickMostSpecificVersionOverride(versionOverrides) { | ||
return versionOverrides.sort((a, b) => (0, isSubRange_1.isSubRange)(b.targetPkg.pref ?? '', a.targetPkg.pref ?? '') ? -1 : 1)[0]; | ||
} | ||
//# sourceMappingURL=createVersionsOverrider.js.map |
{ | ||
"name": "@pnpm/hooks.read-package-hook", | ||
"version": "2.1.1", | ||
"version": "2.1.2", | ||
"description": "Creates the default package reader hook used by pnpm", | ||
@@ -39,3 +39,3 @@ "main": "lib/index.js", | ||
"@yarnpkg/core": "4.0.0-rc.27", | ||
"@pnpm/hooks.read-package-hook": "2.1.1" | ||
"@pnpm/hooks.read-package-hook": "2.1.2" | ||
}, | ||
@@ -42,0 +42,0 @@ "funding": "https://opencollective.com/pnpm", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
28147
307