blob: 13a18602f2eb28a14f9a7dd7e3a7af2cda843ad8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.serialize = exports.parse = void 0;
const parse = (cookie) => {
const pairs = cookie.split(/;\s*/g);
const parsedCookie = {};
for (let i = 0, len = pairs.length; i < len; i++) {
const pair = pairs[i].split(/\s*=\s*([^\s]+)/);
parsedCookie[pair[0]] = decodeURIComponent(pair[1]);
}
return parsedCookie;
};
exports.parse = parse;
const serialize = (name, value, opt = {}) => {
value = encodeURIComponent(value);
let cookie = `${name}=${value}`;
if (opt.maxAge) {
cookie += `; Max-Age=${Math.floor(opt.maxAge)}`;
}
if (opt.domain) {
cookie += '; Domain=' + opt.domain;
}
if (opt.path) {
cookie += '; Path=' + opt.path;
}
if (opt.expires) {
cookie += '; Expires=' + opt.expires.toUTCString();
}
if (opt.httpOnly) {
cookie += '; HttpOnly';
}
if (opt.secure) {
cookie += '; Secure';
}
if (opt.sameSite) {
cookie += `; SameSite=${opt.sameSite}`;
}
return cookie;
};
exports.serialize = serialize;
|