¿Existe una forma elegante de convertir un nombre de host/dominio en una URL http válida de esta manera:
example.com a https://example.com ?
Mi enfoque actual es algo así como:
const domainToURL = (domain: string) => {
if (!domain.startsWith('http')) domain= `https://${domain}`;
return new URL('/', domain).origin;
};
Estoy seguro de que hay algo más robusto por ahí.
Esto es lo que uso: crear un objeto URL ficticio, cambiar la propiedad .hostname y luego leer la propiedad .href . Como esto:
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"));
Si necesita tomar más parámetros (como especificar HTTP o HTTPS), puede modificar fácilmente la función para hacerlo. Encuentro que este enfoque es mejor porque le entregas todo el trabajo al navegador.