summaryrefslogtreecommitdiff
path: root/ext/js/language/dictionary-importer-threaded.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-07-31 18:08:51 -0400
committerGitHub <noreply@github.com>2021-07-31 18:08:51 -0400
commit01c5c5c04bd9234c64d6f57ee0ea65b0f478a1b7 (patch)
treef262b7042bd56fc9b72efb7b42d97341efd50df9 /ext/js/language/dictionary-importer-threaded.js
parent1d6e437fb284a591fc1b7f4aec87bbc7cde5367f (diff)
Dictionary importer refactoring (#1867)
* Remove map of schemas * Don't reuse dictionary importer instances * Refactor * Update how progress callback is used
Diffstat (limited to 'ext/js/language/dictionary-importer-threaded.js')
-rw-r--r--ext/js/language/dictionary-importer-threaded.js34
1 files changed, 19 insertions, 15 deletions
diff --git a/ext/js/language/dictionary-importer-threaded.js b/ext/js/language/dictionary-importer-threaded.js
index a251906b..c9b6fb24 100644
--- a/ext/js/language/dictionary-importer-threaded.js
+++ b/ext/js/language/dictionary-importer-threaded.js
@@ -20,7 +20,11 @@
*/
class DictionaryImporterThreaded {
- importDictionary(archiveContent, details, onProgress) {
+ constructor(onProgress) {
+ this._onProgress = onProgress;
+ }
+
+ importDictionary(archiveContent, details) {
return new Promise((resolve, reject) => {
const dictionaryImporterMediaLoader = new DictionaryImporterMediaLoader();
const worker = new Worker('/js/language/dictionary-importer-worker-main.js', {});
@@ -30,13 +34,13 @@ class DictionaryImporterThreaded {
case 'complete':
worker.removeEventListener('message', onMessage);
worker.terminate();
- this._onComplete(params, resolve, reject);
+ this._onMessageComplete(params, resolve, reject);
break;
case 'progress':
- this._onProgress(params, onProgress);
+ this._onMessageProgress(params);
break;
case 'getImageResolution':
- this._onGetImageResolution(params, worker, dictionaryImporterMediaLoader);
+ this._onMessageGetImageResolution(params, worker, dictionaryImporterMediaLoader);
break;
}
};
@@ -50,7 +54,7 @@ class DictionaryImporterThreaded {
// Private
- _onComplete(params, resolve, reject) {
+ _onMessageComplete(params, resolve, reject) {
const {error} = params;
if (typeof error !== 'undefined') {
reject(deserializeError(error));
@@ -59,19 +63,13 @@ class DictionaryImporterThreaded {
}
}
- _formatResult(data) {
- const {result, errors} = data;
- const errors2 = errors.map((error) => deserializeError(error));
- return {result, errors: errors2};
- }
-
- _onProgress(params, onProgress) {
- if (typeof onProgress !== 'function') { return; }
+ _onMessageProgress(params) {
+ if (typeof this._onProgress !== 'function') { return; }
const {args} = params;
- onProgress(...args);
+ this._onProgress(...args);
}
- async _onGetImageResolution(params, worker, dictionaryImporterMediaLoader) {
+ async _onMessageGetImageResolution(params, worker, dictionaryImporterMediaLoader) {
const {id, mediaType, content} = params;
let response;
try {
@@ -82,4 +80,10 @@ class DictionaryImporterThreaded {
}
worker.postMessage({action: 'getImageResolution.response', params: response});
}
+
+ _formatResult(data) {
+ const {result, errors} = data;
+ const errors2 = errors.map((error) => deserializeError(error));
+ return {result, errors: errors2};
+ }
}