@tanstack/router-core
Version:
Modern and scalable routing for React applications
1 lines • 1.83 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;CAC3C,IAAI,gBAAgB,SAClB,OAAO;MACF,IAAI,MAAM,QAAQ,IAAI,GAC3B,OAAO,IAAI,QAAQ,IAAI;MAClB,IAAI,OAAO,SAAS,UACzB,OAAO,IAAI,QAAQ,IAAmB;MAEtC,OAAO;AAEX;AAGA,SAAgB,aAAa,GAAG,SAA4B;CAC1D,OAAO,QAAQ,QAAQ,KAAc,WAAW;EAC9C,MAAM,kBAAkB,kBAAkB,MAAM;EAChD,IAAI,CAAC,iBAAiB,OAAO;EAC7B,KAAK,MAAM,CAAC,KAAK,UAAU,gBAAgB,QAAQ,GACjD,IAAI,QAAQ,cAEV,CAAA,GAAA,UAAA,sBAD0C,KAC1C,EAAa,SAAS,WAAW,IAAI,OAAO,cAAc,MAAM,CAAC;OAEjE,IAAI,IAAI,KAAK,KAAK;EAGtB,OAAO;CACT,GAAG,IAAI,QAAQ,CAAC;AAClB"}