From ef79eab44bfd000792c610b968b5ceefd41e76a0 Mon Sep 17 00:00:00 2001 From: Darius Jahandarie Date: Sat, 4 Nov 2023 18:45:57 +0900 Subject: Modernize codebase - Use ES modules - Remove vendored libs and build them from npm using esbuild - Switch from JSZip to zip.js --- ext/js/background/backend.js | 46 ++++++++++++++-------------- ext/js/background/background-main.js | 5 ++- ext/js/background/offscreen-main.js | 4 +-- ext/js/background/offscreen.js | 8 ++--- ext/js/background/profile-conditions-util.js | 6 ++-- ext/js/background/request-builder.js | 2 +- ext/js/background/script-manager.js | 3 +- 7 files changed, 35 insertions(+), 39 deletions(-) (limited to 'ext/js/background') diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 8e8e6945..cccfcbb3 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -16,34 +16,34 @@ * along with this program. If not, see . */ -/* global - * AccessibilityController - * AnkiConnect - * AnkiUtil - * ArrayBufferUtil - * AudioDownloader - * ClipboardMonitor - * ClipboardReader - * DictionaryDatabase - * Environment - * JapaneseUtil - * Mecab - * MediaUtil - * ObjectPropertyAccessor - * OptionsUtil - * PermissionsUtil - * ProfileConditionsUtil - * RequestBuilder - * ScriptManager - * Translator - * wanakana - */ +import * as wanakana from '../../lib/wanakana.js'; +import {AccessibilityController} from '../accessibility/accessibility-controller.js'; +import {AnkiConnect} from '../comm/anki-connect.js'; +import {ClipboardMonitor} from '../comm/clipboard-monitor.js'; +import {ClipboardReader} from '../comm/clipboard-reader.js'; +import {Mecab} from '../comm/mecab.js'; +import {clone, deferPromise, deserializeError, generateId, invokeMessageHandler, isObject, log, promiseTimeout, serializeError} from '../core.js'; +import {AnkiUtil} from '../data/anki-util.js'; +import {OptionsUtil} from '../data/options-util.js'; +import {PermissionsUtil} from '../data/permissions-util.js'; +import {ArrayBufferUtil} from '../data/sandbox/array-buffer-util.js'; +import {Environment} from '../extension/environment.js'; +import {ObjectPropertyAccessor} from '../general/object-property-accessor.js'; +import {DictionaryDatabase} from '../language/dictionary-database.js'; +import {JapaneseUtil} from '../language/sandbox/japanese-util.js'; +import {Translator} from '../language/translator.js'; +import {AudioDownloader} from '../media/audio-downloader.js'; +import {MediaUtil} from '../media/media-util.js'; +import {yomichan} from '../yomichan.js'; +import {ProfileConditionsUtil} from './profile-conditions-util.js'; +import {RequestBuilder} from './request-builder.js'; +import {ScriptManager} from './script-manager.js'; /** * This class controls the core logic of the extension, including API calls * and various forms of communication between browser tabs and external applications. */ -class Backend { +export class Backend { /** * Creates a new instance. */ diff --git a/ext/js/background/background-main.js b/ext/js/background/background-main.js index 3b1d42eb..6c30aa7a 100644 --- a/ext/js/background/background-main.js +++ b/ext/js/background/background-main.js @@ -16,9 +16,8 @@ * along with this program. If not, see . */ -/* global - * Backend - */ +import {yomichan} from '../yomichan.js'; +import {Backend} from './backend.js'; (() => { yomichan.prepare(true); diff --git a/ext/js/background/offscreen-main.js b/ext/js/background/offscreen-main.js index 808e7766..dcbf978f 100644 --- a/ext/js/background/offscreen-main.js +++ b/ext/js/background/offscreen-main.js @@ -16,9 +16,7 @@ * along with this program. If not, see . */ -/* global - * Offscreen - */ +import {Offscreen} from './offscreen.js'; (() => { new Offscreen(); diff --git a/ext/js/background/offscreen.js b/ext/js/background/offscreen.js index bc41d189..c37cdedc 100644 --- a/ext/js/background/offscreen.js +++ b/ext/js/background/offscreen.js @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -/* global - * ClipboardReader - */ +import {ClipboardReader} from '../comm/clipboard-reader.js'; +import {invokeMessageHandler} from '../core.js'; +import {yomichan} from '../yomichan.js'; /** * This class controls the core logic of the extension, including API calls * and various forms of communication between browser tabs and external applications. */ -class Offscreen { +export class Offscreen { /** * Creates a new instance. */ diff --git a/ext/js/background/profile-conditions-util.js b/ext/js/background/profile-conditions-util.js index 1e2c01f8..55b287d7 100644 --- a/ext/js/background/profile-conditions-util.js +++ b/ext/js/background/profile-conditions-util.js @@ -16,14 +16,12 @@ * along with this program. If not, see . */ -/* global - * JsonSchema - */ +import {JsonSchema} from '../data/json-schema.js'; /** * Utility class to help processing profile conditions. */ -class ProfileConditionsUtil { +export class ProfileConditionsUtil { /** * A group of conditions. * @typedef {object} ProfileConditionGroup diff --git a/ext/js/background/request-builder.js b/ext/js/background/request-builder.js index 7ee89539..f4f685be 100644 --- a/ext/js/background/request-builder.js +++ b/ext/js/background/request-builder.js @@ -20,7 +20,7 @@ * This class is used to generate `fetch()` requests on the background page * with additional controls over anonymity and error handling. */ -class RequestBuilder { +export class RequestBuilder { /** * A progress callback for a fetch read. * @callback ProgressCallback diff --git a/ext/js/background/script-manager.js b/ext/js/background/script-manager.js index 694b64db..3671b854 100644 --- a/ext/js/background/script-manager.js +++ b/ext/js/background/script-manager.js @@ -16,10 +16,11 @@ * along with this program. If not, see . */ +import {isObject} from '../core.js'; /** * This class is used to manage script injection into content tabs. */ -class ScriptManager { +export class ScriptManager { /** * Creates a new instance of the class. */ -- cgit v1.2.3