Settings as clean architecture

This commit is contained in:
Shin'ya Ueoka 2018-07-22 00:01:24 +09:00
parent 0652131de8
commit 89c28d67fd
11 changed files with 176 additions and 33 deletions

View file

@ -0,0 +1,12 @@
import messages from '../../shared/messages';
export default class ContentMessageClient {
async broadcastSettingsChanged() {
let tabs = await browser.tabs.query({});
for (let tab of tabs) {
browser.tabs.sendMessage(tab.id, {
type: messages.SETTINGS_CHANGED,
});
}
}
}

View file

@ -1,8 +1,10 @@
import messages from '../../shared/messages';
import CompletionsController from '../controllers/completions';
import SettingController from '../controllers/setting';
export default class ContentMessageListener {
constructor() {
this.settingController = new SettingController();
this.completionsController = new CompletionsController();
}
@ -22,13 +24,24 @@ export default class ContentMessageListener {
onMessage(message) {
switch (message.type) {
case messages.CONSOLE_QUERY_COMPLETIONS:
return this.onConsoleQueryCompletions(message);
return this.onConsoleQueryCompletions(message.text);
case messages.SETTINGS_QUERY:
return this.onSettingsQuery();
case messages.SETTINGS_RELOAD:
return this.onSettingsReload();
}
}
async onConsoleQueryCompletions(message) {
let completions =
await this.completionsController.getCompletions(message.text);
async onConsoleQueryCompletions(line) {
let completions = await this.completionsController.getCompletions(line);
return Promise.resolve(completions.serialize());
}
onSettingsQuery() {
return this.settingController.getSetting();
}
onSettingsReload() {
return this.settingController.reload();
}
}

View file

@ -0,0 +1,11 @@
const db = {};
export default class MemoryStorage {
set(name, value) {
db[name] = value;
}
get(name) {
return db[name];
}
}