load settiongs from form

This commit is contained in:
Shin'ya Ueoka 2017-11-25 18:03:15 +09:00
parent 5070006193
commit f27d21908a
4 changed files with 83 additions and 40 deletions

View 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 };