36 lines
931 B
JavaScript
36 lines
931 B
JavaScript
import DefaultSettings from './default';
|
|
import * as settingsValues from './values';
|
|
|
|
const loadRaw = () => {
|
|
return browser.storage.local.get('settings').then(({ settings }) => {
|
|
if (!settings) {
|
|
return DefaultSettings;
|
|
}
|
|
return Object.assign({}, DefaultSettings, settings);
|
|
});
|
|
};
|
|
|
|
const loadValue = () => {
|
|
return loadRaw().then((settings) => {
|
|
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 Object.assign({},
|
|
settingsValues.valueFromJson(DefaultSettings.json),
|
|
value);
|
|
});
|
|
};
|
|
|
|
const save = (settings) => {
|
|
return browser.storage.local.set({
|
|
settings,
|
|
});
|
|
};
|
|
|
|
export { loadRaw, loadValue, save };
|