This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/components/key_value_store.js

51 lines
1.1 KiB
JavaScript

/* key value store
*/
(function() {
window.Discourse.KeyValueStore = (function() {
var context, initialized;
initialized = false;
context = "";
return {
init: function(ctx, messageBus) {
initialized = true;
context = ctx;
},
abandonLocal: function() {
var i, k;
if (!(localStorage && initialized)) {
return;
}
i = localStorage.length - 1;
while (i >= 0) {
k = localStorage.key(i);
if (k.substring(0, context.length) === context) {
localStorage.removeItem(k);
}
i--;
}
return true;
},
remove: function(key) {
return localStorage.removeItem(context + key);
},
set: function(opts) {
if (!(localStorage && initialized)) {
return false;
}
localStorage[context + opts.key] = opts.value;
},
get: function(key) {
if (!localStorage) {
return null;
}
return localStorage[context + key];
}
};
})();
}).call(this);