Handle malformed article URLs
This commit is contained in:
23
utils/url.ts
Normal file
23
utils/url.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
export const normalizeUrl = (url: string) => {
|
||||
let cleanUrl = url.trim();
|
||||
if (!cleanUrl.startsWith('http://') && !cleanUrl.startsWith('https://')) {
|
||||
return `https://${cleanUrl}`;
|
||||
}
|
||||
return cleanUrl;
|
||||
};
|
||||
|
||||
export const getDisplayUrl = (url: string): { href: string; hostname: string } => {
|
||||
const normalized = normalizeUrl(url);
|
||||
|
||||
try {
|
||||
const parsed = new URL(normalized);
|
||||
return { href: normalized, hostname: parsed.hostname };
|
||||
} catch {
|
||||
try {
|
||||
const fallback = new URL(url);
|
||||
return { href: url, hostname: fallback.hostname };
|
||||
} catch {
|
||||
return { href: url, hostname: url };
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user