Amiel's picture
Upload folder using huggingface_hub
676fc08 verified
export function completePath(url: string, newPath?: string) {
try {
// Use dummy base URL to avoid parameter errors
const urlObj = new URL(url);
let pathname = urlObj.pathname;
// Remove the trailing slash if present
if (pathname.endsWith("/")) {
pathname = pathname.slice(0, -1);
}
// Extract the end path
const paths = pathname.split("/");
const endPath = paths.pop() || "";
// Determine whether a version number exists
const versionMatch = endPath.match(/^v\d+/);
if (versionMatch) {
urlObj.pathname = pathname;
return urlObj.toString();
}
// Check if it ends with the target path
if (newPath && !pathname.endsWith(newPath)) {
pathname += newPath;
}
if (pathname === "") {
return urlObj.origin;
}
// Update pathname
urlObj.pathname = pathname;
return urlObj.toString();
} catch (err) {
console.error("Invalid URL:", err);
return url;
}
}