toloframework
Version:
Javascript/HTML/CSS compiler for Firefox OS or nodewebkit apps using modules in the nodejs style.
58 lines (46 loc) • 1.1 kB
JavaScript
;
if (!window.localStorage) {
window.localStorage = new DBStorage();
window.sessionStorage = new DBStorage();
} else if (!window.sessionStorage) {
window.sessionStorage = window.localStorage;
}
exports.local = {
get: load(window.localStorage),
set: save(window.localStorage)
};
exports.session = {
get: load(window.sessionStorage),
set: save(window.sessionStorage)
};
function load(storage) {
return function(key, def) {
var v = storage.getItem(key);
if (v === null) {
return def;
}
try {
v = JSON.parse(v);
} catch (ex) {}
return v;
};
}
function save(storage) {
return function(key, val) {
storage.setItem(key, JSON.stringify(val));
};
}
function DBStorage() {
this._data = {};
}
/**
* @member DBStorage.getItem
* @param key
*/
DBStorage.prototype.getItem = function(key, def) {
var val = this._data[key];
return typeof val === 'undefined' ? def : val;
};
DBStorage.prototype.setItem = function(key, val) {
this._data[key] = val;
};