aboutsummaryrefslogtreecommitdiff
path: root/ext/js/comm
diff options
context:
space:
mode:
authorDarius Jahandarie <djahandarie@gmail.com>2023-11-04 18:45:57 +0900
committerDarius Jahandarie <djahandarie@gmail.com>2023-11-04 18:45:57 +0900
commitef79eab44bfd000792c610b968b5ceefd41e76a0 (patch)
tree48b04f30f6248caedbd880801aa49402a9e8066a /ext/js/comm
parent376151096431d4362e4baaacf0cef4a534e169f7 (diff)
Modernize codebase
- Use ES modules - Remove vendored libs and build them from npm using esbuild - Switch from JSZip to zip.js
Diffstat (limited to 'ext/js/comm')
-rw-r--r--ext/js/comm/anki-connect.js7
-rw-r--r--ext/js/comm/api.js4
-rw-r--r--ext/js/comm/clipboard-monitor.js4
-rw-r--r--ext/js/comm/clipboard-reader.js6
-rw-r--r--ext/js/comm/cross-frame-api.js5
-rw-r--r--ext/js/comm/frame-ancestry-handler.js5
-rw-r--r--ext/js/comm/frame-client.js4
-rw-r--r--ext/js/comm/frame-endpoint.js5
-rw-r--r--ext/js/comm/frame-offset-forwarder.js7
-rw-r--r--ext/js/comm/mecab.js4
10 files changed, 32 insertions, 19 deletions
diff --git a/ext/js/comm/anki-connect.js b/ext/js/comm/anki-connect.js
index b5e4d16d..09838ea5 100644
--- a/ext/js/comm/anki-connect.js
+++ b/ext/js/comm/anki-connect.js
@@ -16,14 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-/* global
- * AnkiUtil
- */
+import {isObject} from '../core.js';
+import {AnkiUtil} from '../data/anki-util.js';
/**
* This class controls communication with Anki via the AnkiConnect plugin.
*/
-class AnkiConnect {
+export class AnkiConnect {
/**
* Creates a new instance.
*/
diff --git a/ext/js/comm/api.js b/ext/js/comm/api.js
index 72d2ba07..8e5cd5cc 100644
--- a/ext/js/comm/api.js
+++ b/ext/js/comm/api.js
@@ -16,7 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-class API {
+import {deferPromise, deserializeError, isObject} from '../core.js';
+
+export class API {
constructor(yomichan) {
this._yomichan = yomichan;
}
diff --git a/ext/js/comm/clipboard-monitor.js b/ext/js/comm/clipboard-monitor.js
index fbf56432..c5046046 100644
--- a/ext/js/comm/clipboard-monitor.js
+++ b/ext/js/comm/clipboard-monitor.js
@@ -16,7 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-class ClipboardMonitor extends EventDispatcher {
+import {EventDispatcher} from '../core.js';
+
+export class ClipboardMonitor extends EventDispatcher {
constructor({japaneseUtil, clipboardReader}) {
super();
this._japaneseUtil = japaneseUtil;
diff --git a/ext/js/comm/clipboard-reader.js b/ext/js/comm/clipboard-reader.js
index 1ea507b8..8139cc11 100644
--- a/ext/js/comm/clipboard-reader.js
+++ b/ext/js/comm/clipboard-reader.js
@@ -16,14 +16,12 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-/* global
- * MediaUtil
- */
+import {MediaUtil} from '../media/media-util.js';
/**
* Class which can read text and images from the clipboard.
*/
-class ClipboardReader {
+export class ClipboardReader {
/**
* Creates a new instances of a clipboard reader.
* @param {object} details Details about how to set up the instance.
diff --git a/ext/js/comm/cross-frame-api.js b/ext/js/comm/cross-frame-api.js
index fb2a1718..c7d9ae68 100644
--- a/ext/js/comm/cross-frame-api.js
+++ b/ext/js/comm/cross-frame-api.js
@@ -16,6 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import {EventDispatcher, EventListenerCollection, deserializeError, invokeMessageHandler, log, serializeError} from '../core.js';
+import {yomichan} from '../yomichan.js';
+
class CrossFrameAPIPort extends EventDispatcher {
constructor(otherTabId, otherFrameId, port, messageHandlers) {
super();
@@ -217,7 +220,7 @@ class CrossFrameAPIPort extends EventDispatcher {
}
}
-class CrossFrameAPI {
+export class CrossFrameAPI {
constructor() {
this._ackTimeout = 3000; // 3 seconds
this._responseTimeout = 10000; // 10 seconds
diff --git a/ext/js/comm/frame-ancestry-handler.js b/ext/js/comm/frame-ancestry-handler.js
index c2e79733..1934c4ac 100644
--- a/ext/js/comm/frame-ancestry-handler.js
+++ b/ext/js/comm/frame-ancestry-handler.js
@@ -16,13 +16,16 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import {generateId} from '../core.js';
+import {yomichan} from '../yomichan.js';
+
/**
* This class is used to return the ancestor frame IDs for the current frame.
* This is a workaround to using the `webNavigation.getAllFrames` API, which
* would require an additional permission that is otherwise unnecessary.
* It is also used to track the correlation between child frame elements and their IDs.
*/
-class FrameAncestryHandler {
+export class FrameAncestryHandler {
/**
* Creates a new instance.
* @param {number} frameId The frame ID of the current frame the instance is instantiated in.
diff --git a/ext/js/comm/frame-client.js b/ext/js/comm/frame-client.js
index 46b1f502..0ca37feb 100644
--- a/ext/js/comm/frame-client.js
+++ b/ext/js/comm/frame-client.js
@@ -16,7 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-class FrameClient {
+import {deferPromise, generateId, isObject} from '../core.js';
+
+export class FrameClient {
constructor() {
this._secret = null;
this._token = null;
diff --git a/ext/js/comm/frame-endpoint.js b/ext/js/comm/frame-endpoint.js
index dad9f40e..0e8a5c00 100644
--- a/ext/js/comm/frame-endpoint.js
+++ b/ext/js/comm/frame-endpoint.js
@@ -16,7 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-class FrameEndpoint {
+import {EventListenerCollection, generateId, isObject} from '../core.js';
+import {yomichan} from '../yomichan.js';
+
+export class FrameEndpoint {
constructor() {
this._secret = generateId(16);
this._token = null;
diff --git a/ext/js/comm/frame-offset-forwarder.js b/ext/js/comm/frame-offset-forwarder.js
index 87c6a9ce..5eea2ba6 100644
--- a/ext/js/comm/frame-offset-forwarder.js
+++ b/ext/js/comm/frame-offset-forwarder.js
@@ -16,11 +16,10 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-/* global
- * FrameAncestryHandler
- */
+import {yomichan} from '../yomichan.js';
+import {FrameAncestryHandler} from './frame-ancestry-handler.js';
-class FrameOffsetForwarder {
+export class FrameOffsetForwarder {
constructor(frameId) {
this._frameId = frameId;
this._frameAncestryHandler = new FrameAncestryHandler(frameId);
diff --git a/ext/js/comm/mecab.js b/ext/js/comm/mecab.js
index bdc8c588..50f13ddf 100644
--- a/ext/js/comm/mecab.js
+++ b/ext/js/comm/mecab.js
@@ -16,11 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+import {EventListenerCollection} from '../core.js';
+
/**
* This class is used to connect Yomichan to a native component that is
* used to parse text into individual terms.
*/
-class Mecab {
+export class Mecab {
/**
* The resulting data from an invocation of `parseText`.
* @typedef {object} ParseResult