mirror of
https://github.com/oven-sh/bun
synced 2026-02-15 21:32:05 +00:00
Fix semver prerelease identifier handling for empty/falsy values
This commit is contained in:
@@ -326,18 +326,21 @@ pub const Version = extern struct {
|
||||
new_version.major +|= 1;
|
||||
new_version.minor = 0;
|
||||
new_version.patch = 0;
|
||||
try pre_strings.writer().print("{s}.0", .{identifier orelse "0"});
|
||||
const id = if (identifier) |i| if (i.len > 0) i else "0" else "0";
|
||||
try pre_strings.writer().print("{s}.0", .{id});
|
||||
new_version.tag.pre = ExternalString.from(pre_strings.items);
|
||||
},
|
||||
.preminor => {
|
||||
new_version.minor +|= 1;
|
||||
new_version.patch = 0;
|
||||
try pre_strings.writer().print("{s}.0", .{identifier orelse "0"});
|
||||
const id = if (identifier) |i| if (i.len > 0) i else "0" else "0";
|
||||
try pre_strings.writer().print("{s}.0", .{id});
|
||||
new_version.tag.pre = ExternalString.from(pre_strings.items);
|
||||
},
|
||||
.prepatch => {
|
||||
new_version.patch +|= 1;
|
||||
try pre_strings.writer().print("{s}.0", .{identifier orelse "0"});
|
||||
const id = if (identifier) |i| if (i.len > 0) i else "0" else "0";
|
||||
try pre_strings.writer().print("{s}.0", .{id});
|
||||
new_version.tag.pre = ExternalString.from(pre_strings.items);
|
||||
},
|
||||
.release => {
|
||||
@@ -347,7 +350,8 @@ pub const Version = extern struct {
|
||||
if (!new_version.tag.hasPre()) {
|
||||
// Same as prepatch
|
||||
new_version.patch +|= 1;
|
||||
try pre_strings.writer().print("{s}.0", .{identifier orelse "0"});
|
||||
const id = if (identifier) |i| if (i.len > 0) i else "0" else "0";
|
||||
try pre_strings.writer().print("{s}.0", .{id});
|
||||
new_version.tag.pre = ExternalString.from(pre_strings.items);
|
||||
} else {
|
||||
// Increment existing prerelease
|
||||
|
||||
@@ -1178,7 +1178,7 @@ describe("Bun.semver negative tests", () => {
|
||||
// Note: non-string identifiers are converted to strings
|
||||
expect(Bun.semver.bump("1.2.3", "prerelease", 123 as any)).toBe("1.2.4-123.0");
|
||||
expect(Bun.semver.bump("1.2.3", "prerelease", {} as any)).toBe("1.2.4-[object Object].0");
|
||||
expect(Bun.semver.bump("1.2.3", "prerelease", [] as any)).toBe("1.2.4-.0");
|
||||
expect(Bun.semver.bump("1.2.3", "prerelease", [] as any)).toBe("1.2.4-0.0");
|
||||
expect(Bun.semver.bump("1.2.3", "prerelease", true as any)).toBe("1.2.4-true.0");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user