@tanstack/router-core
Version:
Modern and scalable routing for React applications
1 lines • 1.81 kB
Source Map (JSON)
{"version":3,"file":"headers.cjs","names":[],"sources":["../../../src/ssr/headers.ts"],"sourcesContent":["import { splitSetCookieString } from 'cookie-es'\nimport type { OutgoingHttpHeaders } from 'node:http2'\n\nexport type AnyHeaders =\n | Headers\n | HeadersInit\n | Record<string, string>\n | Array<[string, string]>\n | OutgoingHttpHeaders\n | undefined\n\n// Helper function to convert various HeaderInit types to a Headers instance\nfunction toHeadersInstance(init: AnyHeaders) {\n if (init instanceof Headers) {\n return init\n } else if (Array.isArray(init)) {\n return new Headers(init)\n } else if (typeof init === 'object') {\n return new Headers(init as HeadersInit)\n } else {\n return null\n }\n}\n\n// Function to merge headers with proper overrides\nexport function mergeHeaders(...headers: Array<AnyHeaders>) {\n return headers.reduce((acc: Headers, header) => {\n const headersInstance = toHeadersInstance(header)\n if (!headersInstance) return acc\n for (const [key, value] of headersInstance.entries()) {\n if (key === 'set-cookie') {\n const splitCookies = splitSetCookieString(value)\n splitCookies.forEach((cookie) => acc.append('set-cookie', cookie))\n } else {\n acc.set(key, value)\n }\n }\n return acc\n }, new Headers())\n}\n"],"mappings":";;;AAYA,SAAS,kBAAkB,MAAkB;AAC3C,KAAI,gBAAgB,QAClB,QAAO;UACE,MAAM,QAAQ,KAAK,CAC5B,QAAO,IAAI,QAAQ,KAAK;UACf,OAAO,SAAS,SACzB,QAAO,IAAI,QAAQ,KAAoB;KAEvC,QAAO;;AAKX,SAAgB,aAAa,GAAG,SAA4B;AAC1D,QAAO,QAAQ,QAAQ,KAAc,WAAW;EAC9C,MAAM,kBAAkB,kBAAkB,OAAO;AACjD,MAAI,CAAC,gBAAiB,QAAO;AAC7B,OAAK,MAAM,CAAC,KAAK,UAAU,gBAAgB,SAAS,CAClD,KAAI,QAAQ,aAEV,EAAA,GAAA,UAAA,sBAD0C,MAAM,CACnC,SAAS,WAAW,IAAI,OAAO,cAAc,OAAO,CAAC;MAElE,KAAI,IAAI,KAAK,MAAM;AAGvB,SAAO;IACN,IAAI,SAAS,CAAC"}