29 lines
794 B
JavaScript
29 lines
794 B
JavaScript
let Storage = {};
|
|
|
|
Storage.save = browser.storage.local.set;
|
|
Storage.load = browser.storage.local.get;
|
|
Storage.remove = browser.storage.local.remove;
|
|
|
|
Storage.saveSync = browser.storage.sync.set;
|
|
Storage.loadSync = browser.storage.sync.get;
|
|
Storage.removeSync = browser.storage.sync.remove;
|
|
|
|
Storage.callbacks = {};
|
|
Storage.onChange = function(key, fn){
|
|
if(!Storage.callbacks[key]) Storage.callbacks[key] = [];
|
|
Storage.callbacks[key].push(fn);
|
|
}
|
|
Storage.emit = function(key, newValue){
|
|
if(!Storage.callbacks[key]) return;
|
|
Storage.callbacks[key].forEach(x => {
|
|
x(newValue);
|
|
});
|
|
}
|
|
chrome.storage.onChanged.addListener(function(objects, area){
|
|
if(area!="local") return;
|
|
for(let id in objects){
|
|
let newValue = objects[id].newValue;
|
|
if(newValue) { Storage.emit(id, newValue); }
|
|
}
|
|
});
|
|
|