diff --git a/SB.js b/SB.js new file mode 100644 index 00000000..75b98294 --- /dev/null +++ b/SB.js @@ -0,0 +1,36 @@ +SB = {}; + +function configProxy() { + chrome.storage.onChanged.addListener((changes, namespace) => { + for (key in changes) { + SB.localconfig[key] = changes[key].newValue; + } + }); + var handler = { + set: function(obj, prop, value) { + chrome.storage.sync.set({ + [prop]: value + }) + }, + get: function(obj, prop) { + return SB.localconfig[prop] + } + }; + return new Proxy({}, handler); +} + +fetchConfig = _ => new Promise(function(resolve, reject) { + chrome.storage.sync.get(null, function(items) { + SB.localconfig = items; // Data is ready + resolve(); + }); +}); + +async function config() { + SB.localconfig = {}; + await fetchConfig(); + SB.config = configProxy(); +} + +// Sync config +config();