ziggurat.js
Version:
a tiny modular js library for templates and other shorthands
64 lines (61 loc) • 1.57 kB
JavaScript
// Generated by CoffeeScript 2.7.0
zg.cookies = new Proxy({}, {
get: function(_, name) {
var cookie, cookies, i, len;
// extract cookie from document.cookie
cookies = (function() {
var i, len, ref, results;
ref = document.cookie.split('; ');
results = [];
for (i = 0, len = ref.length; i < len; i++) {
cookie = ref[i];
results.push(cookie.split('='));
}
return results;
})();
for (i = 0, len = cookies.length; i < len; i++) {
cookie = cookies[i];
if (cookie[0] === name) {
return cookie[1];
}
}
},
set: function(_, name, value) {
var cookie, k, v;
// build a statement to be put into document.cookie
if (typeof value === 'object') {
cookie = `${name}=${value.value}; `;
// add every property to cookie string
cookie += ((function() {
var results;
if (k !== 'value') {
results = [];
for (k in value) {
v = value[k];
results.push(v != null ? `${k} = ${v}` : `${k}`);
}
return results;
}
})()).join('; ');
} else {
cookie = `${name}=${value}`;
}
return document.cookie = cookie;
}
});
zg.load_json_cookie = function(name) {
var SyntaxError, val;
val = zg.cookies[name];
try {
return JSON.parse(val);
} catch (error) {
SyntaxError = error;
return null;
}
};
zg.mirror_to_cookie = function(value, name, options) {
return zg.cookies[name] = {
"value": JSON.stringify(value),
...options
};
};