import { config } from '@grafana/runtime'; export type RelativeUrl = `/${string}`; export function createRelativeUrl( path: RelativeUrl, queryParams?: string[][] | Record | 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 | 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); } }