import { compile } from "path-to-regexp"; export interface IURLParams
{ params?: P; query?: Q; fragment?: string; } export function buildURL
(path: string | any) { const pathBuilder = compile(String(path)); return function ({ params, query, fragment }: IURLParams
= {}): string { const queryParams = query ? new URLSearchParams(Object.entries(query)).toString() : ""; const parts = [ pathBuilder(params), queryParams && `?${queryParams}`, fragment && `#${fragment}`, ]; return parts.filter(Boolean).join(""); }; }