2025-04-01 10:38:02 +09:00

28 lines
914 B
TypeScript

import { config } from '@grafana/runtime';
export type RelativeUrl = `/${string}`;
export function createRelativeUrl(
path: RelativeUrl,
queryParams?: string[][] | Record<string, string> | string | URLSearchParams
) {
const searchParams = new URLSearchParams(queryParams);
const searchParamsString = searchParams.toString();
return `${config.appSubUrl}${path}${searchParamsString ? `?${searchParamsString}` : ''}`;
}
export function createAbsoluteUrl(
path: RelativeUrl,
queryParams?: string[][] | Record<string, string> | string | URLSearchParams
) {
const searchParams = new URLSearchParams(queryParams);
const searchParamsString = searchParams.toString();
try {
const baseUrl = new URL(config.appSubUrl + path, config.appUrl);
return `${baseUrl.href}${searchParamsString ? `?${searchParamsString}` : ''}`;
} catch (err) {
return createRelativeUrl(path, queryParams);
}
}