@technobuddha/library
Version:
A large library of useful functions
71 lines (70 loc) • 1.96 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.del = exports.add = exports.names = exports.get = exports.init = void 0;
/* eslint-disable unicorn/no-document-cookie */
var formatDate_1 = __importDefault(require("../formatDate"));
var yummy;
/**
* Initialize the cookie system with the browsers cookies
* Parse a string containing cookies for use by other cookie method
*
* @param input string to be decoded
*/
function init(input) {
if (input === void 0) { input = document.cookie; }
if (typeof yummy === 'undefined') {
yummy = Object.fromEntries(input.split(';').map(function (cookie) { return cookie.split('=').map(function (crumb) { return decodeURIComponent(crumb.trim()); }); }));
}
}
exports.init = init;
/**
* Get the value of a cookie
*
* @param name name of a cookie
*/
function get(name) {
init();
return yummy[name];
}
exports.get = get;
/**
* Get the names of all cookies
*
* @returns array of cookie names
*/
function names() {
init();
return Object.keys(yummy);
}
exports.names = names;
/**
* Add or update a cookie
*
* @param name name of the cookie
* @param value value of the cookie
* @param expires Expiration date
*/
function add(name, value, expires) {
init();
var cookie = name + "=" + encodeURIComponent(value) + "; Path=/";
if (expires)
cookie += "; Expires=" + formatDate_1.default(new Date(expires), 'cookie', { UTC: true });
document.cookie = cookie;
yummy[name] = value;
}
exports.add = add;
/**
* Delete a cookie
*
* @param name
*/
function del(name) {
init();
document.cookie = name + "=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT";
delete yummy[name];
}
exports.del = del;
exports.default = { init: init, get: get, names: names, add: add, del: del };