aboutsummaryrefslogtreecommitdiff
path: root/src/background/infrastructures
diff options
context:
space:
mode:
authorShin'ya Ueoka <ueokande@i-beam.org>2018-07-22 00:01:24 +0900
committerShin'ya Ueoka <ueokande@i-beam.org>2018-07-22 00:01:24 +0900
commit89c28d67fd7b961833b557da904bd17aa28660c5 (patch)
tree2af29fb34f81e9dba508a4bccad98fad73dea143 /src/background/infrastructures
parent0652131de885df3ebb7c9c0e762fd1604486a892 (diff)
Settings as clean architecture
Diffstat (limited to 'src/background/infrastructures')
-rw-r--r--src/background/infrastructures/content-message-client.js12
-rw-r--r--src/background/infrastructures/content-message-listener.js21
-rw-r--r--src/background/infrastructures/memory-storage.js11
3 files changed, 40 insertions, 4 deletions
diff --git a/src/background/infrastructures/content-message-client.js b/src/background/infrastructures/content-message-client.js
new file mode 100644
index 0000000..b3b37b4
--- /dev/null
+++ b/src/background/infrastructures/content-message-client.js
@@ -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,
+ });
+ }
+ }
+}
diff --git a/src/background/infrastructures/content-message-listener.js b/src/background/infrastructures/content-message-listener.js
index a0ed66c..6236f1c 100644
--- a/src/background/infrastructures/content-message-listener.js
+++ b/src/background/infrastructures/content-message-listener.js
@@ -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();
+ }
}
diff --git a/src/background/infrastructures/memory-storage.js b/src/background/infrastructures/memory-storage.js
new file mode 100644
index 0000000..0a05928
--- /dev/null
+++ b/src/background/infrastructures/memory-storage.js
@@ -0,0 +1,11 @@
+const db = {};
+
+export default class MemoryStorage {
+ set(name, value) {
+ db[name] = value;
+ }
+
+ get(name) {
+ return db[name];
+ }
+}