52 lines
959 B
JavaScript
52 lines
959 B
JavaScript
/**
|
|
A simple key value store that uses LocalStorage
|
|
|
|
@class KeyValueStore
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.KeyValueStore = {
|
|
initialized: false,
|
|
context: "",
|
|
|
|
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];
|
|
}
|
|
}
|
|
|