mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-10 00:48:46 -04:00
fix: overrides should not fail on non-semver specs
This commit is contained in:
@@ -59,11 +59,15 @@ function overrideDepsOfPkg (pkg: PackageManifest, versionOverrides: VersionOverr
|
||||
|
||||
function overrideDeps (versionOverrides: VersionOverride[], deps: Dependencies) {
|
||||
for (const versionOverride of versionOverrides) {
|
||||
const actual = deps[versionOverride.wantedDependency.alias]
|
||||
if (
|
||||
deps[versionOverride.wantedDependency.alias] &&
|
||||
actual &&
|
||||
(
|
||||
!versionOverride.wantedDependency.pref ||
|
||||
semver.subset(deps[versionOverride.wantedDependency.alias], versionOverride.wantedDependency.pref)
|
||||
actual === versionOverride.wantedDependency.pref ||
|
||||
semver.validRange(actual) != null &&
|
||||
semver.validRange(versionOverride.wantedDependency.pref) != null &&
|
||||
semver.subset(actual, versionOverride.wantedDependency.pref)
|
||||
)
|
||||
) {
|
||||
deps[versionOverride.wantedDependency.alias] = versionOverride.newPref
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import createVersionsOverrider from 'supi/lib/install/createVersionsOverrider'
|
||||
|
||||
test('createVersionsOverrider()', () => {
|
||||
test('createVersionsOverrider() matches subranges', () => {
|
||||
const overrider = createVersionsOverrider({
|
||||
'foo@2': '2.12.0',
|
||||
})
|
||||
@@ -10,3 +10,23 @@ test('createVersionsOverrider()', () => {
|
||||
})
|
||||
).toStrictEqual({ dependencies: { foo: '2.12.0' } })
|
||||
})
|
||||
|
||||
test('createVersionsOverrider() does not fail on non-range selectors', () => {
|
||||
const overrider = createVersionsOverrider({
|
||||
'foo@2': '2.12.0',
|
||||
'bar@github:org/bar': '2.12.0',
|
||||
})
|
||||
expect(
|
||||
overrider({
|
||||
dependencies: {
|
||||
foo: 'github:org/foo',
|
||||
bar: 'github:org/bar',
|
||||
},
|
||||
})
|
||||
).toStrictEqual({
|
||||
dependencies: {
|
||||
foo: 'github:org/foo',
|
||||
bar: '2.12.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user