summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bg/js/backend.js4
-rw-r--r--ext/bg/js/translator.js23
2 files changed, 7 insertions, 20 deletions
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js
index ebdd2cda..65df0d49 100644
--- a/ext/bg/js/backend.js
+++ b/ext/bg/js/backend.js
@@ -186,7 +186,9 @@ class Backend {
} catch (e) {
yomichan.logError(e);
}
- await this._translator.prepare();
+
+ const deinflectionReasions = await this._fetchAsset('/bg/lang/deinflect.json', true);
+ this._translator.prepare(deinflectionReasions);
await this._optionsUtil.prepare();
this._defaultAnkiFieldTemplates = (await this._fetchAsset('/bg/data/default-anki-field-templates.handlebars')).trim();
diff --git a/ext/bg/js/translator.js b/ext/bg/js/translator.js
index 7af3f61f..3dbae411 100644
--- a/ext/bg/js/translator.js
+++ b/ext/bg/js/translator.js
@@ -38,11 +38,11 @@ class Translator {
/**
* Initializes the instance for use. The public API should not be used until
- * this function has been called and await'd.
+ * this function has been called.
+ * @param deinflectionReasons The raw deinflections reasons data that the Deinflector uses.
*/
- async prepare() {
- const reasons = await this._fetchJsonAsset('/bg/lang/deinflect.json');
- this._deinflector = new Deinflector(reasons);
+ prepare(deinflectionReasons) {
+ this._deinflector = new Deinflector(deinflectionReasons);
}
/**
@@ -747,21 +747,6 @@ class Translator {
return newText;
}
- async _fetchJsonAsset(url) {
- const response = await fetch(chrome.runtime.getURL(url), {
- method: 'GET',
- mode: 'no-cors',
- cache: 'default',
- credentials: 'omit',
- redirect: 'follow',
- referrerPolicy: 'no-referrer'
- });
- if (!response.ok) {
- throw new Error(`Failed to fetch ${url}: ${response.status}`);
- }
- return await response.json();
- }
-
_getSecondarySearchDictionaryMap(enabledDictionaryMap) {
const secondarySearchDictionaryMap = new Map();
for (const [title, dictionary] of enabledDictionaryMap.entries()) {