site-tordv-calculator/mirzaev/calculator/system/public/js/cookie.js

56 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
let cookie = {
read(name) {
// Поиск по регулярному выражению
let matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : undefined;
},
write(name, value, options = {}) {
// Инициализация параметров
options = {
path: '/',
...options
};
if (options.expires instanceof Date) {
// Передана инстанция Date
// Запись параметра истечения срока
options.expires = options.expires.toUTCString();
}
// Инициализация cookie
let updatedCookie = encodeURIComponent(name) + "=" + encodeURIComponent(value);
for (let optionKey in options) {
// Перебор параметров
// Запись в cookie названия параметра
updatedCookie += "; " + optionKey;
// Инициализация значения параметра
let optionValue = options[optionKey];
if (optionValue !== true) {
// Найдено значение параметра
// Запись в cookie значения параметра
updatedCookie += "=" + optionValue;
}
}
// Конкатенация нового cookie с остальными
document.cookie = updatedCookie;
},
delete(name) {
// Удаление
setCookie(name, "", {
'max-age': -1
})
}
};