You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 

32 lines
902 B

import DefaultSettings from './default';
import * as settingsValues from './values';
const loadRaw = async(): Promise<any> => {
let { settings } = await browser.storage.local.get('settings');
if (!settings) {
return DefaultSettings;
}
return { ...DefaultSettings, ...settings as object };
};
const loadValue = async() => {
let settings = await loadRaw();
let value = JSON.parse(DefaultSettings.json);
if (settings.source === 'json') {
value = settingsValues.valueFromJson(settings.json);
} else if (settings.source === 'form') {
value = settingsValues.valueFromForm(settings.form);
}
if (!value.properties) {
value.properties = {};
}
return { ...settingsValues.valueFromJson(DefaultSettings.json), ...value };
};
const save = (settings: any): Promise<any> => {
return browser.storage.local.set({
settings,
});
};
export { loadRaw, loadValue, save };