hz-zhhq-app/node_modules/cookie-storage/lib/cookie-storage.js

141 lines
4.5 KiB
JavaScript

"use strict";
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CookieStorage = void 0;
var format_cookie_1 = require("./format-cookie");
var parse_cookies_1 = require("./parse-cookies");
var CookieStorage = function () {
function CookieStorage(defaultOptions) {
_classCallCheck(this, CookieStorage);
this._defaultOptions = Object.assign({
domain: null,
expires: null,
path: null,
secure: false
}, defaultOptions);
if (typeof Proxy !== "undefined") return new Proxy(this, cookieStorageHandler);
}
_createClass(CookieStorage, [{
key: "clear",
value: function clear() {
var _this = this;
var parsed = parse_cookies_1.parseCookies(this._getCookie());
var keys = Object.keys(parsed);
keys.forEach(function (key) {
return _this.removeItem(key);
});
}
}, {
key: "getItem",
value: function getItem(key) {
var parsed = parse_cookies_1.parseCookies(this._getCookie());
return Object.prototype.hasOwnProperty.call(parsed, key) ? parsed[key] : null;
}
}, {
key: "key",
value: function key(index) {
var parsed = parse_cookies_1.parseCookies(this._getCookie());
var sortedKeys = Object.keys(parsed).sort();
return index < sortedKeys.length ? sortedKeys[index] : null;
}
}, {
key: "removeItem",
value: function removeItem(key, cookieOptions) {
var data = "";
var options = Object.assign(Object.assign(Object.assign({}, this._defaultOptions), cookieOptions), {
expires: new Date(0)
});
var formatted = format_cookie_1.formatCookie(key, data, options);
this._setCookie(formatted);
}
}, {
key: "setItem",
value: function setItem(key, data, options) {
var opts = Object.assign(Object.assign({}, this._defaultOptions), options);
var formatted = format_cookie_1.formatCookie(key, data, opts);
this._setCookie(formatted);
}
}, {
key: "_getCookie",
value: function _getCookie() {
return typeof document === "undefined" ? "" : typeof document.cookie === "undefined" ? "" : document.cookie;
}
}, {
key: "_setCookie",
value: function _setCookie(value) {
document.cookie = value;
}
}, {
key: "length",
get: function get() {
var parsed = parse_cookies_1.parseCookies(this._getCookie());
var keys = Object.keys(parsed);
return keys.length;
}
}]);
return CookieStorage;
}();
exports.CookieStorage = CookieStorage;
var cookieStorageHandler = {
defineProperty: function defineProperty(target, p, attributes) {
target.setItem(p.toString(), String(attributes.value));
return true;
},
deleteProperty: function deleteProperty(target, p) {
target.removeItem(p.toString());
return true;
},
get: function get(target, p, _receiver) {
if (typeof p === "string" && p in target) return target[p];
var result = target.getItem(p.toString());
return result !== null ? result : undefined;
},
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, p) {
if (p in target) return undefined;
return {
configurable: true,
enumerable: true,
value: target.getItem(p.toString()),
writable: true
};
},
has: function has(target, p) {
if (typeof p === "string" && p in target) return true;
return target.getItem(p.toString()) !== null;
},
ownKeys: function ownKeys(target) {
var keys = [];
for (var i = 0; i < target.length; i++) {
var key = target.key(i);
if (key !== null) keys.push(key);
}
return keys;
},
preventExtensions: function preventExtensions(_) {
throw new TypeError("can't prevent extensions on this proxy object");
},
set: function set(target, p, value, _) {
target.setItem(p.toString(), String(value));
return true;
}
};