@lcap/nasl
Version:
NetEase Application Specific Language
62 lines • 2.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function getDomain(isRoot) {
const { hostname } = location;
const hostArr = hostname.split('.');
if (hostArr.length < 3)
return hostname;
const len = hostArr.length;
if (isRoot)
return `${hostArr[len - 2]}.${hostArr[len - 1]}`;
return `${hostArr[len - 3]}.${hostArr[len - 2]}.${hostArr[len - 1]}`;
}
exports.default = {
set(data = {}, exdays = 1, exseconds = 0, isRoot = false) {
const d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000) + exseconds * 1000);
const expires = d.toString();
Object.keys(data).forEach((key) => {
const value = data[key];
if (key && value) {
let cookie = `${key}=${encodeURIComponent(value)}; expires=${expires}; path=/`;
if (isRoot) {
const domain = getDomain(isRoot);
cookie = `${cookie}; domain=${domain}`;
}
document.cookie = cookie;
}
});
},
get(name) {
const nameEQ = name + '=';
const ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ')
c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0)
return decodeURIComponent(c.substring(nameEQ.length, c.length));
}
return null;
},
erase(name) {
const d = new Date();
d.setTime(d.getTime() - (1 * 24 * 60 * 60 * 1000));
const expires = d.toString();
document.cookie = `${name}=; expires=${expires}; path=/`;
const domain = getDomain();
document.cookie = `${name}=; expires=${expires}; path=/; domain=${domain}`;
const root = getDomain(true);
document.cookie = `${name}=; expires=${expires}; path=/; domain=${root}`;
},
eraseAll() {
const cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i];
const eqPos = cookie.indexOf('=');
const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
this.erase(name);
}
},
};
//# sourceMappingURL=cookie.js.map