amos-tool
Version:
amos ui tool
61 lines (57 loc) • 1.98 kB
JavaScript
;
function extend() {
for (var e = 0, t = {}; e < arguments.length; e++) {
var n = arguments[e];
for (var r in n) t[r] = n[r];
}
return t;
}
function decode(e) {
return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
}
function init(e) {
function t() {}
function n(t, n, r) {
if ("undefined" != typeof document) {
"number" == typeof (r = extend({
path: "/"
}, api.defaults, r)).expires && (r.expires = new Date(1 * new Date + 864e5 * r.expires)),
r.expires = r.expires ? r.expires.toUTCString() : "";
try {
var o = JSON.stringify(n);
/^[\{\[]/.test(o) && (n = o);
} catch (e) {}
n = e.write ? e.write(n, t) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
var i = "";
for (var c in r) r[c] && (i += "; " + c, !0 !== r[c] && (i += "=" + r[c].split(";")[0]));
return document.cookie = t + "=" + n + i;
}
}
function r(t, n) {
if ("undefined" != typeof document) {
for (var r = {}, o = document.cookie ? document.cookie.split("; ") : [], i = 0; i < o.length; i++) {
var c = o[i].split("="), d = c.slice(1).join("=");
n || '"' !== d.charAt(0) || (d = d.slice(1, -1));
try {
var u = decode(c[0]);
if (d = (e.read || e)(d, u) || decode(d), n) try {
d = JSON.parse(d);
} catch (e) {}
if (r[u] = d, t === u) break;
} catch (e) {}
}
return t ? r[t] : r;
}
}
return t.set = n, t.get = function(e) {
return r(e, !1);
}, t.getJSON = function(e) {
return r(e, !0);
}, t.remove = function(e, t) {
n(e, "", extend(t, {
expires: -1
}));
}, t.defaults = {}, t.withConverter = init, t;
}
module.exports = init(function() {});