diff options
| author | Alex Yatskov <alex@foosoft.net> | 2017-08-05 13:13:06 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2017-08-05 13:13:06 -0700 | 
| commit | b2003a0a560a9bd469e23e860c39dc5b21412021 (patch) | |
| tree | 49304a40694712044c264268300bd2fb5651e020 /ext/bg/js/backend.js | |
| parent | ef43b742b0b0705e8fe44792933878c161d55d8f (diff) | |
cleanup
Diffstat (limited to 'ext/bg/js/backend.js')
| -rw-r--r-- | ext/bg/js/backend.js | 50 | 
1 files changed, 48 insertions, 2 deletions
| diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index f7823047..2f60b4b7 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -26,8 +26,54 @@ window.yomichan = new class {          this.translator.prepare().then(optionsLoad).then(options => {              apiOptionsSet(options); -            chrome.commands.onCommand.addListener(utilCommandDispatch); -            chrome.runtime.onMessage.addListener(utilMessageDispatch); +            chrome.commands.onCommand.addListener(apiCommandExec); +            chrome.runtime.onMessage.addListener(({action, params}, sender, callback) => { +                const forward = (promise, callback) => { +                    return promise.then(result => { +                        callback({result}); +                    }).catch(error => { +                        callback({error}); +                    }); +                }; + +                const handlers = { +                    optionsGet: ({callback}) => { +                        forward(optionsLoad(), callback); +                    }, + +                    kanjiFind: ({text, callback}) => { +                        forward(apiKanjiFind(text), callback); +                    }, + +                    termsFind: ({text, callback}) => { +                        forward(apiTermsFind(text), callback); +                    }, + +                    templateRender: ({template, data, callback}) => { +                        forward(apiTemplateRender(template, data), callback); +                    }, + +                    definitionAdd: ({definition, mode, callback}) => { +                        forward(apiDefinitionAdd(definition, mode), callback); +                    }, + +                    definitionsAddable: ({definitions, modes, callback}) => { +                        forward(apiDefinitionsAddable(definitions, modes), callback); +                    }, + +                    noteView: ({noteId}) => { +                        forward(apiNoteView(noteId), callback); +                    } +                }; + +                const handler = handlers[action]; +                if (handler) { +                    params.callback = callback; +                    handler(params); +                } + +                return true; +            });              if (options.general.showGuide) {                  chrome.tabs.create({url: chrome.extension.getURL('/bg/guide.html')}); |