Project Files
src / utils / url.ts
const TRACKING_PARAMS = new Set([
"fbclid",
"gclid",
"igshid",
"mc_cid",
"mc_eid",
"mkt_tok",
]);
export function normalizeUrl(input: string, baseUrl?: string): string {
try {
const url = baseUrl ? new URL(input, baseUrl) : new URL(input);
url.hash = "";
for (const key of [...url.searchParams.keys()]) {
if (key.startsWith("utm_") || TRACKING_PARAMS.has(key.toLowerCase())) {
url.searchParams.delete(key);
}
}
return url.toString();
} catch {
return input.trim();
}
}
export function resolveHref(href: string, baseUrl: string): string | null {
try {
return normalizeUrl(href, baseUrl);
} catch {
return null;
}
}