UNPKG

@technobuddha/library

Version:
71 lines (70 loc) 1.96 kB
"use strict"; 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 };