JSFiddle - React, Tailwind, and code Playground

JavaScript

function pathJoin(parts, sep){
    const separator = sep || '/';
    parts = parts.map((part, index)=>{
        if (index) {
            part = part.replace(new RegExp('^' + separator), '');
     		}
        if (index !== parts.length - 1) {
            part = part.replace(new RegExp(separator + '$'), '');
        }
        return part;
    })
    return parts.join(separator);
 }

console.log(pathJoin(['https://', 'hostname', 'path/']))
console.log(pathJoin(['relative/', 'path', 'to/dir/']))
console.log(pathJoin(['/absolute/', 'path', 'to/file']))