Is there an elegant way to convert a hostname/domain into a valid http url like so:
example.com to https://example.com ?
My current approach is something like:
const domainToURL = (domain: string) => {
if (!domain.startsWith('http')) domain= `https://${domain}`;
return new URL('/', domain).origin;
};
I'm sure there is something more robust out there.
This is what I use: Create a dummy URL object, change the .hostname property, then read the .href property. Like this:
function hostnameToURL(hostname) {
// the inital value of the URL object can be anything
const url = new URL("https://example.com");
url.hostname = hostname;
return url.href;
}
console.log(hostnameToURL("google.com"));
console.log(hostnameToURL("a.fun.website.com"));
console.log(hostnameToURL("example.com"));
If you need to take in more parameters (like specifying HTTP or HTTPS), you can easily tweak the function to do so. I find this approach better because you hand off all the work to the browser.