UNPKG

cea-core

Version:
52 lines (51 loc) 1.31 kB
export function cookieParse(host, headers) { const rawCookies = headers.raw()["set-cookie"]; const map = new Map(); if (!rawCookies) { return map; } let [lastIdxMark, kv] = ["", new Map()]; for (const e of rawCookies) { const [keyVal, ...optionals] = e.split("; "); if (!keyVal) { continue; } const [key, val] = keyVal.split("="); const domainVal = optionals.find((e2) => e2.includes("Domain")); if (domainVal) { const [_, domain] = domainVal.split("="); map.set(domain, new Map([[key, val]])); } const mapIdx = host; if (lastIdxMark !== mapIdx) { if (lastIdxMark) { map.set(lastIdxMark, kv); kv = new Map(); } } lastIdxMark = mapIdx; kv.set(key, val); } if (kv.size) { map.set(lastIdxMark, kv); } return map; } export function cookieStr(host, cookieMap) { let str = ""; const mapIdx = host; const cookie = cookieMap.get(mapIdx); const rootCookie = cookieMap.get(mapIdx.replace(/\w+\./, "")); if (cookie) { for (const [key, value] of cookie.entries()) { str += `${key}=${value}; `; } } if (rootCookie) { for (const [key, value] of rootCookie.entries()) { str += `${key}=${value}; `; } } return str; } //# sourceMappingURL=cookie-helper.js.map