All files / src/app/shared/logic query.params.ts

100% Statements 6/6
100% Branches 4/4
100% Functions 2/2
100% Lines 6/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17          5x   5x 3x 3x 3x         5x  
export interface QueryParams {
  [key: string]: string | number | boolean | null | undefined;
}
 
export function buildURL(base: string, path: string, params?: QueryParams): string {
  const url = new URL(path, base);
 
  if (params) {
    Object.entries(params).forEach(([key, value]) => {
      if (value !== undefined && value !== null) {
        url.searchParams.set(key, String(value));
      }
    });
  }
 
  return url.toString();
}