/** * Filters out undefined, null, and empty string values from params */ export function filterParams( params: Record ): Record { return Object.entries(params).reduce((acc, [key, value]) => { if (value !== undefined && value !== null && value !== '') { acc[key] = value; } return acc; }, {} as Record); } export default function buildUrlWithMetadata( baseUrl: string, metadata: Record ): string { const filtered = filterParams(metadata); const query = Object.entries(filtered) .map( ([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}` ) .join('&'); if (query) { return baseUrl.includes('?') ? `${baseUrl}&${query}` : `${baseUrl}?${query}`; } return baseUrl; }