aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/utilities/url.ts
blob: 45ad0ab74d52b5bfa86fd947f009c32cb083c058 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
export function applyQueryParameters<T>(url: string, query: T): string {
  if (query == null) return url;

  const params = new URLSearchParams();

  for (const [key, value] of Object.entries(query)) {
    if (value == null) void 0;
    else if (typeof value === "string") params.set(key, value);
    else if (typeof value === "number") params.set(key, String(value));
    else if (typeof value === "boolean") params.set(key, String(value));
    else if (value instanceof Date) params.set(key, value.toISOString());
    else {
      console.error("Unknown query parameter type. Param: ", value);
    }
  }

  const p = params.toString();

  if (p == "") {
    return url;
  }

  return url + "?" + p;
}