mirror of
https://github.com/umami-software/umami.git
synced 2026-02-04 12:47:13 +01:00
40 lines
905 B
TypeScript
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;
|
|
}
|
|
}
|