nightTab/js/data.js

66 lines
1.3 KiB
JavaScript
Raw Normal View History

2018-12-26 08:45:53 +01:00
var data = (function() {
var saveName = "nitghTab";
var set = function(key, data) {
localStorage.setItem(key, data);
};
var get = function(key) {
return localStorage.getItem(key);
};
var remove = function(key) {
2018-12-26 08:45:53 +01:00
localStorage.removeItem(key);
};
var save = function() {
var data = {
2019-01-06 16:47:08 +01:00
version: version.get(),
state: state.get(),
bookmarks: bookmarks.get()
};
set(saveName, JSON.stringify(data));
2018-12-27 19:41:40 +01:00
console.log("data saved");
2018-12-26 08:45:53 +01:00
};
var wipe = function() {
remove(saveName);
};
var load = function() {
2018-12-26 08:45:53 +01:00
var data = JSON.parse(get(saveName));
return data;
2018-12-26 08:45:53 +01:00
};
2019-01-06 16:47:08 +01:00
var _checkForSavedData = function(data) {
if (data) {
console.log("data loaded");
if (!("version" in data) || data.version != version.get()) {
console.log("data version", data.version, "found less than current");
data = update.run(data);
2019-01-06 16:47:08 +01:00
set(saveName, JSON.stringify(data));
} else {
console.log("data version =", version.get());
};
} else {
console.log("no data found to load");
};
};
var init = function() {
_checkForSavedData(load());
};
2018-12-26 08:45:53 +01:00
return {
2019-01-06 16:47:08 +01:00
init: init,
2018-12-26 08:45:53 +01:00
save: save,
remove: remove,
2018-12-26 08:45:53 +01:00
set: set,
get: get,
2019-01-06 16:47:08 +01:00
load: load,
wipe: wipe
2018-12-26 08:45:53 +01:00
};
})();