Openstatus www.openstatus.dev
at main 20 lines 579 B view raw
1export const getSubdomain = (name: string, apexName: string) => { 2 if (name === apexName) return null; 3 return name.slice(0, name.length - apexName.length - 1); 4}; 5 6export const getApexDomain = (url: string) => { 7 let domain: string; 8 try { 9 domain = new URL(url).hostname; 10 } catch (_e) { 11 return ""; 12 } 13 const parts = domain.split("."); 14 if (parts.length > 2) { 15 // if it's a subdomain (e.g. dub.vercel.app), return the last 2 parts 16 return parts.slice(-2).join("."); 17 } 18 // if it's a normal domain (e.g. dub.sh), we return the domain 19 return domain; 20};