summaryrefslogtreecommitdiff
path: root/dev/database-vm.js
diff options
context:
space:
mode:
authorDarius Jahandarie <djahandarie@gmail.com>2023-11-08 03:11:35 +0900
committerDarius Jahandarie <djahandarie@gmail.com>2023-11-08 03:23:17 +0900
commit0f4d36938fd0d844f548aa5a7f7e7842df8dfb41 (patch)
tree5b6be3620a557d0b9177047003f6d742d9d2a32d /dev/database-vm.js
parentef79eab44bfd000792c610b968b5ceefd41e76a0 (diff)
Switch to vitest for ESM support; other fixes
Diffstat (limited to 'dev/database-vm.js')
-rw-r--r--dev/database-vm.js82
1 files changed, 0 insertions, 82 deletions
diff --git a/dev/database-vm.js b/dev/database-vm.js
deleted file mode 100644
index d5570691..00000000
--- a/dev/database-vm.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2023 Yomitan Authors
- * Copyright (C) 2020-2022 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/>.
- */
-
-const fs = require('fs');
-const url = require('url');
-const path = require('path');
-const {JSZip} = require('./util');
-const {VM} = require('./vm');
-require('fake-indexeddb/auto');
-
-const chrome = {
- runtime: {
- getURL: (path2) => {
- return url.pathToFileURL(path.join(__dirname, '..', 'ext', path2.replace(/^\//, ''))).href;
- }
- }
-};
-
-async function fetch(url2) {
- const extDir = path.join(__dirname, '..', 'ext');
- let filePath;
- try {
- filePath = url.fileURLToPath(url2);
- } catch (e) {
- filePath = path.resolve(extDir, url2.replace(/^[/\\]/, ''));
- }
- await Promise.resolve();
- const content = fs.readFileSync(filePath, {encoding: null});
- return {
- ok: true,
- status: 200,
- statusText: 'OK',
- text: async () => Promise.resolve(content.toString('utf8')),
- json: async () => Promise.resolve(JSON.parse(content.toString('utf8')))
- };
-}
-
-function atob(data) {
- return Buffer.from(data, 'base64').toString('ascii');
-}
-
-class DatabaseVM extends VM {
- constructor(globals={}) {
- super(Object.assign({
- chrome,
- fetch,
- indexedDB: global.indexedDB,
- IDBKeyRange: global.IDBKeyRange,
- JSZip,
- atob
- }, globals));
- this.context.window = this.context;
- this.indexedDB = global.indexedDB;
- }
-}
-
-class DatabaseVMDictionaryImporterMediaLoader {
- async getImageDetails(content) {
- // Placeholder values
- return {content, width: 100, height: 100};
- }
-}
-
-module.exports = {
- DatabaseVM,
- DatabaseVMDictionaryImporterMediaLoader
-};