kea-react
Version:
Componentes comunes de react
134 lines (133 loc) • 4.75 kB
JavaScript
;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
function tryParse(json) {
try {
return JSON.parse(json);
}
catch (e) {
return null;
}
}
/**
* Servicio para almacenar datos en los cookies o en el localstorage
*/
var CookieLocalStorageClass = /** @class */ (function () {
/**
* @param localstorage True para usar el localstorage, false para usar los cookies
* @param serialize True para serializar el value
*/
function CookieLocalStorageClass(localstorage, serialize) {
this.localstorage = localstorage;
this.serialize = serialize;
}
/**Limpia todos los valores */
CookieLocalStorageClass.prototype.Clear = function () {
if (this.localstorage) {
window.localStorage.clear();
}
else {
document.cookie = "";
}
};
/**Store a key-value pair */
CookieLocalStorageClass.prototype.Set = function (name, value) {
name = encodeURIComponent(name);
if (this.localstorage) {
window.localStorage.setItem(name, this.serialize ? JSON.stringify(value) : value);
}
else {
var expireDays = 360;
var d = new Date();
d.setTime(d.getTime() + (expireDays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
if (this.serialize) {
value = encodeURIComponent(JSON.stringify(value));
}
document.cookie = name + "=" + value + "; " + expires;
}
};
/**Get a value by its key. Returns null if the value is not found */
CookieLocalStorageClass.prototype.Get = function (name) {
name = encodeURIComponent(name);
if (this.localstorage) {
var r = window.localStorage.getItem(name);
return r && (this.serialize ? tryParse(r) : r);
}
else {
var name = name + "=";
var ca = document.cookie.split(';');
var value = null;
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
value = c.substring(name.length, c.length);
}
}
if (!value)
return null;
if (this.serialize) {
return tryParse(decodeURIComponent(value));
}
}
return null;
};
/**Remove a value by its key */
CookieLocalStorageClass.prototype.Remove = function (name) {
if (this.localstorage) {
window.localStorage.removeItem(name);
}
else {
var d = new Date();
d.setTime(d.getTime() + (-1 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = name + "=" + "" + "; " + expires;
}
};
return CookieLocalStorageClass;
}());
exports.CookieLocalStorageClass = CookieLocalStorageClass;
/**Servicio de cookies por default */
exports.Cookies = new CookieLocalStorageClass(window.localStorage != null, true);
/**Memoriza una función en los cookies */
function cookieNetworkMemoize(func, cookieKey) {
return (function () {
var argArray = [];
for (var i = 0; i < arguments.length; i++)
argArray.push(arguments[i]);
var key = "cookieMemoize_" + cookieKey + "_" + JSON.stringify(argArray);
var r = func.apply(void 0, __spread(argArray)).then(function (result) {
exports.Cookies.Set(key, result);
return result;
}, function (error) {
if (error == 0 || error == 504)
return exports.Cookies.Get(key);
else
throw error;
});
return r;
});
}
exports.cookieNetworkMemoize = cookieNetworkMemoize;