domain.ts

657 B · raw

1import { getDomain } from "tldts";23/**4 * Extract eTLD+1 domain from a URL string.5 * Returns null for invalid URLs.6 */7export function extractDomain(url: string): string | null {8  try {9    const normalized = url.startsWith("http") ? url : "https://" + url;10    const parsed = getDomain(normalized);11    return parsed ?? null;12  } catch {13    return null;14  }15}1617/**18 * Get displayable domain from a URL string.19 */20export function getDisplayDomain(url: string): string {21  try {22    const normalized = url.startsWith("http") ? url : "https://" + url;23    const { hostname } = new URL(normalized);24    return hostname;25  } catch {26    return url;27  }28}