{"version":3,"file":"params.mjs","names":[],"sources":["../../../../../../../http/src/utils/params.ts"],"sourcesContent":["import type { HttpParams } from \"../Http.types\";\n\n/**\n * Serialise an HttpParams record into a URL query string (without leading \"?\").\n *\n * Arrays are expanded as repeated keys: { ids: [1,2,3] } → \"ids=1&ids=2&ids=3\"\n * null / undefined values are omitted.\n * Booleans are serialised as \"true\" / \"false\".\n */\nexport function buildQueryString(params: HttpParams): string {\n  const parts: string[] = [];\n\n  for (const [key, value] of Object.entries(params)) {\n    if (value === null || value === undefined) continue;\n\n    if (Array.isArray(value)) {\n      for (const item of value) {\n        parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(item))}`);\n      }\n    } else {\n      parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);\n    }\n  }\n\n  return parts.join(\"&\");\n}\n\n/**\n * Append serialised params to a URL string, handling existing query strings.\n */\nexport function appendParams(url: string, params: HttpParams | undefined): string {\n  if (!params || Object.keys(params).length === 0) return url;\n\n  const qs = buildQueryString(params);\n  if (!qs) return url;\n\n  return url.includes(\"?\") ? `${url}&${qs}` : `${url}?${qs}`;\n}\n"],"mappings":";;;;;;;;AASA,SAAgB,iBAAiB,QAA4B;CAC3D,MAAM,QAAkB,CAAC;CAEzB,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,GAAG;EACjD,IAAI,UAAU,QAAQ,UAAU,QAAW;EAE3C,IAAI,MAAM,QAAQ,KAAK,GACrB,KAAK,MAAM,QAAQ,OACjB,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,IAAI,CAAC,GAAG;OAG7E,MAAM,KAAK,GAAG,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,OAAO,KAAK,CAAC,GAAG;CAEhF;CAEA,OAAO,MAAM,KAAK,GAAG;AACvB;;;;AAKA,SAAgB,aAAa,KAAa,QAAwC;CAChF,IAAI,CAAC,UAAU,OAAO,KAAK,MAAM,CAAC,CAAC,WAAW,GAAG,OAAO;CAExD,MAAM,KAAK,iBAAiB,MAAM;CAClC,IAAI,CAAC,IAAI,OAAO;CAEhB,OAAO,IAAI,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG;AACxD"}