diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bunfig.zig | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/bunfig.zig b/src/bunfig.zig index 76f33cb82..bb52e3053 100644 --- a/src/bunfig.zig +++ b/src/bunfig.zig @@ -64,19 +64,27 @@ pub const Bunfig = struct { // Token if (url.username.len == 0 and url.password.len > 0) { registry.token = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{s}/{s}", .{ url.displayProtocol(), url.displayHostname(), std.mem.trimLeft(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{s}/{s}/", .{ url.displayProtocol(), url.displayHostname(), std.mem.trim(u8, url.pathname, "/") }); } else if (url.username.len > 0 and url.password.len > 0) { registry.username = url.username; registry.password = url.password; - registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{s}/{s}", .{ url.displayProtocol(), url.displayHostname(), std.mem.trimLeft(u8, url.pathname, "/") }); + registry.url = try std.fmt.allocPrint(this.allocator, "{s}://{s}/{s}/", .{ url.displayProtocol(), url.displayHostname(), std.mem.trim(u8, url.pathname, "/") }); } else { - registry.url = url.href; + if (strings.hasSuffixComptime(url.href, "/")) { + registry.url = url.href; + } else { + registry.url = try std.fmt.allocPrint(this.allocator, "{s}/", .{url.href}); + } } }, .e_object => |obj| { if (obj.get("url")) |url| { try this.expect(url, .e_string); - registry.url = url.data.e_string.data; + if (strings.hasSuffixComptime(url.data.e_string.data, "/")) { + registry.url = url.data.e_string.data; + } else { + registry.url = try std.fmt.allocPrint(this.allocator, "{s}/", .{url.data.e_string.data}); + } } if (obj.get("username")) |username| { |