Skip to content

Commit c901400

Browse files
committed
Fix the preserve option for rangeStyle
1 parent 4ae4f2e commit c901400

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/utils/semver.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,22 @@ export function applyRange(
3131
case 'lte':
3232
return `<=${version}`
3333
case 'preserve': {
34-
const comparators = [...new semver.Range(refRange).set].flat()
34+
const range = new semver.Range(refRange)
35+
const { raw } = range
36+
const comparators = [...range.set].flat()
3537
const { length } = comparators
36-
return !length || length > 1
37-
? version
38-
: `${comparators[0]!.operator}${version}`
38+
if (length === 1) {
39+
const char = /^[<>]=?/.exec(raw)?.[0]
40+
if (char) {
41+
return `${char}${version}`
42+
}
43+
} else if (length === 2) {
44+
const char = /^[~^]/.exec(raw)?.[0]
45+
if (char) {
46+
return `${char}${version}`
47+
}
48+
}
49+
return version
3950
}
4051
case 'tilde':
4152
return `~${version}`

0 commit comments

Comments
 (0)