Settings as clean architecture
This commit is contained in:
parent
0652131de8
commit
89c28d67fd
11 changed files with 176 additions and 33 deletions
12
src/background/infrastructures/content-message-client.js
Normal file
12
src/background/infrastructures/content-message-client.js
Normal 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,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
11
src/background/infrastructures/memory-storage.js
Normal file
11
src/background/infrastructures/memory-storage.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
const db = {};
|
||||
|
||||
export default class MemoryStorage {
|
||||
set(name, value) {
|
||||
db[name] = value;
|
||||
}
|
||||
|
||||
get(name) {
|
||||
return db[name];
|
||||
}
|
||||
}
|
Reference in a new issue