import urlJoin from 'url-join'; export function ensureTrailingSlash(url: string): string { return url.replace(/\/?$/, '/'); } export function resolveBaseUrl(baseUrl: string, input: string | URL): string { const inputString = input.toString(); let host; let pathname; try { ({ host, pathname } = new URL(inputString)); } catch (e) { pathname = inputString; } return host ? inputString : urlJoin(baseUrl, pathname || ''); } export function getQueryString(params: Record): string { const usp = new URLSearchParams(); for (const [k, v] of Object.entries(params)) { if (Array.isArray(v)) { for (const item of v) { usp.append(k, item.toString()); } } else { usp.append(k, v.toString()); } } const res = usp.toString(); return res; }