aboutsummaryrefslogtreecommitdiff
path: root/ext/bg/js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/bg/js')
-rw-r--r--ext/bg/js/util.js18
-rw-r--r--ext/bg/js/yomichan.js32
2 files changed, 21 insertions, 29 deletions
diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js
index 1e033eef..f10e4291 100644
--- a/ext/bg/js/util.js
+++ b/ext/bg/js/util.js
@@ -30,6 +30,19 @@ function kanjiLinks(options) {
return result;
}
+function isKanji(c) {
+ const code = c.charCodeAt(0);
+ return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0;
+}
+
+function promiseCallback(promise, callback) {
+ return promise.then(result => {
+ callback({result});
+ }).catch(error => {
+ callback({error});
+ });
+}
+
function loadJson(url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
@@ -39,11 +52,6 @@ function loadJson(url) {
});
}
-function isKanji(c) {
- const code = c.charCodeAt(0);
- return code >= 0x4e00 && code < 0x9fb0 || code >= 0x3400 && code < 0x4dc0;
-}
-
function sortTags(tags) {
return tags.sort((v1, v2) => {
const order1 = v1.order;
diff --git a/ext/bg/js/yomichan.js b/ext/bg/js/yomichan.js
index 4ba44588..3091e503 100644
--- a/ext/bg/js/yomichan.js
+++ b/ext/bg/js/yomichan.js
@@ -235,27 +235,15 @@ class Yomichan {
}
api_getOptions({callback}) {
- loadOptions().then(result => {
- callback({result});
- }).catch(error => {
- callback({error});
- });
+ promiseCallback(loadOptions(), callback);
}
api_findKanji({text, callback}) {
- this.translator.findKanji(text).then(result => {
- callback({result});
- }).catch(error => {
- callback({error});
- });
+ promiseCallback(this.translator.findKanji(text), callback);
}
api_findTerm({text, callback}) {
- this.translator.findTerm(text).then(result => {
- callback({result});
- }).catch(error => {
- callback({error});
- });
+ promiseCallback(this.translator.findTerm(text), callback);
}
api_renderText({template, data, callback}) {
@@ -264,11 +252,7 @@ class Yomichan {
api_addDefinition({definition, mode, callback}) {
const note = this.formatNote(definition, mode);
- this.anki.addNote(note).then(result => {
- callback({result});
- }).catch(error => {
- callback({error});
- });
+ promiseCallback(this.anki.addNote(note), callback);
}
api_canAddDefinitions({definitions, modes, callback}) {
@@ -279,7 +263,7 @@ class Yomichan {
}
}
- this.anki.canAddNotes(notes).then(raw => {
+ const promise = this.anki.canAddNotes(notes).then(raw => {
const states = [];
for (let resultBase = 0; resultBase < raw.length; resultBase += modes.length) {
const state = {};
@@ -290,10 +274,10 @@ class Yomichan {
states.push(state);
}
- callback({result: states});
- }).catch(error => {
- callback({error});
+ return states;
});
+
+ promiseCallback(promise, callback);
}
}