diff options
Diffstat (limited to 'ext/js/language/dictionary-importer-threaded.js')
-rw-r--r-- | ext/js/language/dictionary-importer-threaded.js | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/ext/js/language/dictionary-importer-threaded.js b/ext/js/language/dictionary-importer-threaded.js deleted file mode 100644 index c9b6fb24..00000000 --- a/ext/js/language/dictionary-importer-threaded.js +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2021 Yomichan Authors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -/* global - * DictionaryImporterMediaLoader - */ - -class DictionaryImporterThreaded { - 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', {}); - const onMessage = (e) => { - const {action, params} = e.data; - switch (action) { - case 'complete': - worker.removeEventListener('message', onMessage); - worker.terminate(); - this._onMessageComplete(params, resolve, reject); - break; - case 'progress': - this._onMessageProgress(params); - break; - case 'getImageResolution': - this._onMessageGetImageResolution(params, worker, dictionaryImporterMediaLoader); - break; - } - }; - worker.addEventListener('message', onMessage); - worker.postMessage({ - action: 'import', - params: {details, archiveContent} - }, [archiveContent]); - }); - } - - // Private - - _onMessageComplete(params, resolve, reject) { - const {error} = params; - if (typeof error !== 'undefined') { - reject(deserializeError(error)); - } else { - resolve(this._formatResult(params.result)); - } - } - - _onMessageProgress(params) { - if (typeof this._onProgress !== 'function') { return; } - const {args} = params; - this._onProgress(...args); - } - - async _onMessageGetImageResolution(params, worker, dictionaryImporterMediaLoader) { - const {id, mediaType, content} = params; - let response; - try { - const result = await dictionaryImporterMediaLoader.getImageResolution(mediaType, content); - response = {id, result}; - } catch (e) { - response = {id, error: serializeError(e)}; - } - worker.postMessage({action: 'getImageResolution.response', params: response}); - } - - _formatResult(data) { - const {result, errors} = data; - const errors2 = errors.map((error) => deserializeError(error)); - return {result, errors: errors2}; - } -} |