load settiongs from form
This commit is contained in:
parent
5070006193
commit
f27d21908a
4 changed files with 83 additions and 40 deletions
35
src/shared/settings/values.js
Normal file
35
src/shared/settings/values.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
const operationFromName = (name) => {
|
||||
let [type, argStr] = name.split('?');
|
||||
let args = {};
|
||||
if (argStr) {
|
||||
args = JSON.parse(argStr);
|
||||
}
|
||||
return Object.assign({ type }, args);
|
||||
};
|
||||
|
||||
const fromJson = (json) => {
|
||||
return JSON.parse(json);
|
||||
};
|
||||
|
||||
const fromForm = (form) => {
|
||||
let keymaps = {};
|
||||
for (let name of Object.keys(form.keymaps)) {
|
||||
let keys = form.keymaps[name];
|
||||
keymaps[keys] = operationFromName(name);
|
||||
}
|
||||
|
||||
let engines = {};
|
||||
for (let { name, url } of form.search.engines) {
|
||||
engines[name] = url;
|
||||
}
|
||||
let search = {
|
||||
default: form.search.default,
|
||||
engines,
|
||||
};
|
||||
|
||||
let blacklist = form.blacklist;
|
||||
|
||||
return { keymaps, search, blacklist };
|
||||
};
|
||||
|
||||
export { fromJson, fromForm };
|
Reference in a new issue