aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/background/components/background.js7
-rw-r--r--src/background/controllers/find.js15
-rw-r--r--src/background/infrastructures/content-message-listener.js14
-rw-r--r--src/background/repositories/find.js18
-rw-r--r--src/background/usecases/find.js15
5 files changed, 62 insertions, 7 deletions
diff --git a/src/background/components/background.js b/src/background/components/background.js
index 9ba733d..3667f14 100644
--- a/src/background/components/background.js
+++ b/src/background/components/background.js
@@ -1,6 +1,5 @@
import messages from 'shared/messages';
import * as commandActions from 'background/actions/command';
-import * as findActions from 'background/actions/find';
import * as tabActions from 'background/actions/tab';
export default class BackgroundComponent {
@@ -21,7 +20,6 @@ export default class BackgroundComponent {
onMessage(message, sender) {
let settings = this.store.getState().setting;
- let find = this.store.getState().find;
switch (message.type) {
case messages.OPEN_URL:
@@ -37,11 +35,6 @@ export default class BackgroundComponent {
commandActions.exec(sender.tab, message.text, settings.value),
);
return this.broadcastSettingsChanged();
- case messages.FIND_GET_KEYWORD:
- return Promise.resolve(find.keyword);
- case messages.FIND_SET_KEYWORD:
- this.store.dispatch(findActions.setKeyword(message.keyword));
- return Promise.resolve({});
}
}
diff --git a/src/background/controllers/find.js b/src/background/controllers/find.js
new file mode 100644
index 0000000..7096014
--- /dev/null
+++ b/src/background/controllers/find.js
@@ -0,0 +1,15 @@
+import FindInteractor from '../usecases/find';
+
+export default class FindController {
+ constructor() {
+ this.findInteractor = new FindInteractor();
+ }
+
+ getKeyword() {
+ return this.findInteractor.getKeyword();
+ }
+
+ setKeyword(keyword) {
+ return this.findInteractor.setKeyword(keyword);
+ }
+}
diff --git a/src/background/infrastructures/content-message-listener.js b/src/background/infrastructures/content-message-listener.js
index 6236f1c..00dba51 100644
--- a/src/background/infrastructures/content-message-listener.js
+++ b/src/background/infrastructures/content-message-listener.js
@@ -1,11 +1,13 @@
import messages from '../../shared/messages';
import CompletionsController from '../controllers/completions';
import SettingController from '../controllers/setting';
+import FindController from '../controllers/find';
export default class ContentMessageListener {
constructor() {
this.settingController = new SettingController();
this.completionsController = new CompletionsController();
+ this.findController = new FindController();
}
run() {
@@ -29,6 +31,10 @@ export default class ContentMessageListener {
return this.onSettingsQuery();
case messages.SETTINGS_RELOAD:
return this.onSettingsReload();
+ case messages.FIND_GET_KEYWORD:
+ return this.onFindGetKeyword();
+ case messages.FIND_SET_KEYWORD:
+ return this.onFindSetKeyword(message.keyword);
}
}
@@ -44,4 +50,12 @@ export default class ContentMessageListener {
onSettingsReload() {
return this.settingController.reload();
}
+
+ onFindGetKeyword() {
+ return this.findController.getKeyword();
+ }
+
+ onFindSetKeyword(keyword) {
+ return this.findController.setKeyword(keyword);
+ }
}
diff --git a/src/background/repositories/find.js b/src/background/repositories/find.js
new file mode 100644
index 0000000..9482e78
--- /dev/null
+++ b/src/background/repositories/find.js
@@ -0,0 +1,18 @@
+import MemoryStorage from '../infrastructures/memory-storage';
+
+const FIND_KEYWORD_KEY = 'find-keyword';
+
+export default class FindRepository {
+ constructor() {
+ this.cache = new MemoryStorage();
+ }
+
+ getKeyword() {
+ return Promise.resolve(this.cache.get(FIND_KEYWORD_KEY));
+ }
+
+ setKeyword(keyword) {
+ return this.cache.set(FIND_KEYWORD_KEY, keyword);
+ }
+}
+
diff --git a/src/background/usecases/find.js b/src/background/usecases/find.js
new file mode 100644
index 0000000..eae480d
--- /dev/null
+++ b/src/background/usecases/find.js
@@ -0,0 +1,15 @@
+import FindRepository from '../repositories/find';
+
+export default class FindInteractor {
+ constructor() {
+ this.findRepository = new FindRepository();
+ }
+
+ getKeyword() {
+ return this.findRepository.getKeyword();
+ }
+
+ setKeyword(keyword) {
+ return this.findRepository.setKeyword(keyword);
+ }
+}