mirror of https://github.com/dessant/buster
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
908 B
JavaScript
39 lines
908 B
JavaScript
import browser from 'webextension-polyfill';
|
|
|
|
let syncArea;
|
|
async function getSupportedArea(requestedArea) {
|
|
if (typeof syncArea === 'undefined') {
|
|
try {
|
|
await browser.storage.sync.get('');
|
|
syncArea = true;
|
|
} catch (e) {
|
|
syncArea = false;
|
|
}
|
|
}
|
|
|
|
return syncArea ? requestedArea : 'local';
|
|
}
|
|
|
|
async function get(keys = null, area = 'local') {
|
|
area = await getSupportedArea(area);
|
|
return browser.storage[area].get(keys);
|
|
}
|
|
|
|
async function set(obj, area = 'local') {
|
|
area = await getSupportedArea(area);
|
|
return browser.storage[area].set(obj);
|
|
}
|
|
|
|
async function remove(keys, area = 'local') {
|
|
area = await getSupportedArea(area);
|
|
return browser.storage[area].remove(keys);
|
|
}
|
|
|
|
async function clear(area = 'local') {
|
|
area = await getSupportedArea(area);
|
|
return browser.storage[area].clear();
|
|
}
|
|
|
|
export default {get, set, remove, clear};
|
|
export {getSupportedArea};
|