@syngrisi/syngrisi
Version:
Syngrisi - Visual Testing Tool
43 lines • 1.11 kB
JavaScript
// src/server/utils/cookieParser.ts
function parseCookies(cookieHeader) {
const cookies = /* @__PURE__ */ Object.create(null);
if (!cookieHeader || cookieHeader.length < 2) {
return cookies;
}
const pairs = cookieHeader.split(";");
for (const pair of pairs) {
const eqIdx = pair.indexOf("=");
if (eqIdx < 0) continue;
const key = pair.substring(0, eqIdx).trim();
if (!key) continue;
let val = pair.substring(eqIdx + 1).trim();
if (val.charCodeAt(0) === 34) {
val = val.slice(1, -1);
}
if (cookies[key] === void 0) {
try {
cookies[key] = decodeURIComponent(val);
} catch {
cookies[key] = val;
}
}
}
return cookies;
}
function cookieParser() {
return function cookieParserMiddleware(req, _res, next) {
if (req.cookies) {
next();
return;
}
const cookieHeader = req.headers.cookie;
req.cookies = parseCookies(cookieHeader || "");
next();
};
}
var cookieParser_default = cookieParser;
export {
cookieParser,
cookieParser_default as default
};
//# sourceMappingURL=cookieParser.js.map