My First Clean Architecture
This commit is contained in:
parent
4d4aaa2c4b
commit
bf7c125fb2
8 changed files with 185 additions and 3 deletions
34
src/background/infrastructures/content-message-listener.js
Normal file
34
src/background/infrastructures/content-message-listener.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
import messages from '../../shared/messages';
|
||||
import CompletionsController from '../controllers/completions';
|
||||
|
||||
export default class ContentMessageListener {
|
||||
constructor() {
|
||||
this.completionsController = new CompletionsController();
|
||||
}
|
||||
|
||||
run() {
|
||||
browser.runtime.onMessage.addListener((message, sender) => {
|
||||
try {
|
||||
return this.onMessage(message, sender);
|
||||
} catch (e) {
|
||||
return browser.tabs.sendMessage(sender.tab.id, {
|
||||
type: messages.CONSOLE_SHOW_ERROR,
|
||||
text: e.message,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
onMessage(message) {
|
||||
switch (message.type) {
|
||||
case messages.CONSOLE_QUERY_COMPLETIONS:
|
||||
return this.onConsoleQueryCompletions(message);
|
||||
}
|
||||
}
|
||||
|
||||
async onConsoleQueryCompletions(message) {
|
||||
let completions =
|
||||
await this.completionsController.getCompletions(message.text);
|
||||
return Promise.resolve(completions.serialize());
|
||||
}
|
||||
}
|
Reference in a new issue