{"version":3,"file":"headers.cjs","sources":["../src/headers.ts"],"sourcesContent":["export type CustomHeaders = Record<\n  string,\n  string | null | boolean | number | undefined\n>;\n\nexport function mergeHeaders(\n  base: HeadersInit | CustomHeaders | undefined,\n  overwrite?: HeadersInit | CustomHeaders,\n) {\n  const baseHeaders = normalizeHeaders(base);\n  const overwriteHeaders = normalizeHeaders(overwrite);\n\n  overwriteHeaders.forEach((value, key) => {\n    baseHeaders.set(key, value);\n  });\n\n  return baseHeaders;\n}\n\nexport function normalizeHeaders(\n  headers: HeadersInit | CustomHeaders | undefined,\n) {\n  // This might be custom header config containing null | boolean | number | undefined\n  // By default Headers constructor will convert them to string but we don't want that\n  // for nullish values.\n  if (headers && !(headers instanceof Headers) && !Array.isArray(headers)) {\n    return new Headers(\n      Object.fromEntries(\n        Object.entries(headers)\n          .filter(([, v]) => v != null)\n          .map(([k, v]) => [k, String(v)]),\n      ),\n    );\n  }\n\n  return new Headers(headers);\n}\n"],"names":["mergeHeaders","base","overwrite","baseHeaders","normalizeHeaders","value","key","headers","v","k"],"mappings":"gFAKO,SAASA,EACdC,EACAC,EACA,CACA,MAAMC,EAAcC,EAAiBH,CAAI,EAGzC,OAFyBG,EAAiBF,CAAS,EAElC,QAAQ,CAACG,EAAOC,IAAQ,CACvCH,EAAY,IAAIG,EAAKD,CAAK,CAC5B,CAAC,EAEMF,CACT,CAEO,SAASC,EACdG,EACA,CAIA,OAAIA,GAAW,EAAEA,aAAmB,UAAY,CAAC,MAAM,QAAQA,CAAO,EAC7D,IAAI,QACT,OAAO,YACL,OAAO,QAAQA,CAAO,EACnB,OAAO,CAAC,CAAA,CAAGC,CAAC,IAAMA,GAAK,IAAI,EAC3B,IAAI,CAAC,CAACC,EAAGD,CAAC,IAAM,CAACC,EAAG,OAAOD,CAAC,CAAC,CAAC,CAAA,CACnC,EAIG,IAAI,QAAQD,CAAO,CAC5B"}