Skip to content

Commit ff47da6

Browse files
committed
1 parent bf685ce commit ff47da6

3 files changed

Lines changed: 11 additions & 10 deletions

File tree

src/utils/hacks.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { is_what } from "../deps.ts"
33
const { isString, isNumber } = is_what
44
import * as semver from "./semver.ts"
55
import host from "./host.ts"
6+
import { TeaError } from "../../mod.ts"
67

78
export function validatePackageRequirement(project: string, constraint: unknown): PackageRequirement | undefined
89
{
@@ -25,8 +26,13 @@ export function validatePackageRequirement(project: string, constraint: unknown)
2526
throw new Error(`invalid constraint for ${project}: ${constraint}`)
2627
}
2728

29+
constraint = semver.Range.parse(constraint as string)
30+
if (!constraint) {
31+
throw new TeaError("invalid constraint for " + project + ": " + constraint)
32+
}
33+
2834
return {
2935
project,
30-
constraint: new semver.Range(constraint as string)
36+
constraint: constraint as semver.Range
3137
}
3238
}

src/utils/semver.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,9 @@ Deno.test("coverage", () => {
264264

265265
assertThrows(() => new semver.Range("1"))
266266

267-
assertEquals(semver.Range.parse("1"), new semver.Range("^1"))
268-
assertEquals(semver.Range.parse("1.1"), new semver.Range("^1.1"))
269-
assertEquals(semver.Range.parse("1.1.2"), new semver.Range("~1.1.2"))
267+
assertEquals(semver.Range.parse("1")?.toString(), new semver.Range("^1").toString())
268+
assertEquals(semver.Range.parse("1.1")?.toString(), new semver.Range("~1.1").toString())
269+
assertEquals(semver.Range.parse("1.1.2")?.toString(), new semver.Range(">=1.1.2<1.1.3").toString())
270270

271271
assertEquals(semver.Range.parse("a"), undefined)
272272

src/utils/semver.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,7 @@ export class Range {
247247
// AFAICT this is what people expect
248248
// verified via https://jubianchi.github.io/semver-check/
249249

250-
const parts = input.split('.')
251-
if (parts.length < 3) {
252-
return new Range(`^${input}`)
253-
} else {
254-
return new Range(`~${input}`)
255-
}
250+
return new Range(`@${input}`)
256251
}
257252
}
258253

0 commit comments

Comments
 (0)