umami/src/lib/url.ts
2025-02-05 13:30:28 -08:00

40 lines
905 B
TypeScript

export function getQueryString(params: object = {}): string {
const searchParams = new URLSearchParams();
Object.entries(params).forEach(([key, value]) => {
if (value !== undefined) {
searchParams.append(key, value);
}
});
return searchParams.toString();
}
export function buildUrl(url: string, params: object = {}): string {
const queryString = getQueryString(params);
return `${url}${queryString && '?' + queryString}`;
}
export function safeDecodeURI(s: string | undefined | null): string | undefined | null {
if (s === undefined || s === null) {
return s;
}
try {
return decodeURI(s);
} catch (e) {
return s;
}
}
export function safeDecodeURIComponent(s: string | undefined | null): string | undefined | null {
if (s === undefined || s === null) {
return s;
}
try {
return decodeURIComponent(s);
} catch (e) {
return s;
}
}