21 lines
767 B
Plaintext
21 lines
767 B
Plaintext
import { splitSetCookieString } from "cookie-es";
|
|
//#region src/ssr/headers.ts
|
|
function toHeadersInstance(init) {
|
|
if (init instanceof Headers) return init;
|
|
else if (Array.isArray(init)) return new Headers(init);
|
|
else if (typeof init === "object") return new Headers(init);
|
|
else return null;
|
|
}
|
|
function mergeHeaders(...headers) {
|
|
return headers.reduce((acc, header) => {
|
|
const headersInstance = toHeadersInstance(header);
|
|
if (!headersInstance) return acc;
|
|
for (const [key, value] of headersInstance.entries()) if (key === "set-cookie") splitSetCookieString(value).forEach((cookie) => acc.append("set-cookie", cookie));
|
|
else acc.set(key, value);
|
|
return acc;
|
|
}, new Headers());
|
|
}
|
|
//#endregion
|
|
export { mergeHeaders };
|
|
|
|
//# sourceMappingURL=headers.js.map |