From 5a97202d7e83f689eb8076603c616589615d27ce Mon Sep 17 00:00:00 2001 From: "Richard T. Carback III" <rick.carback@gmail.com> Date: Thu, 8 Feb 2024 22:13:16 +0000 Subject: [PATCH] Export the workers as named modules in the webpack build --- assets/jsutils/channelsIndexedDbWorker.js | 4 ++-- assets/jsutils/dmIndexedDbWorker.js | 4 ++-- assets/jsutils/logFileWorker.js | 4 ++-- assets/jsutils/stateIndexedDbWorker.js | 4 ++-- package.json | 1 - src/index.ts | 7 ++++--- webpack.config.js | 16 ++++++++++++---- 7 files changed, 24 insertions(+), 16 deletions(-) diff --git a/assets/jsutils/channelsIndexedDbWorker.js b/assets/jsutils/channelsIndexedDbWorker.js index f37ab6a..f3ca2dc 100644 --- a/assets/jsutils/channelsIndexedDbWorker.js +++ b/assets/jsutils/channelsIndexedDbWorker.js @@ -6,9 +6,9 @@ //////////////////////////////////////////////////////////////////////////////// // NOTE: wasm_exec.js must always be in the same directory as this script. -importScripts('wasm_exec.js'); +importScripts(require('./wasm_exec.js')); // NOTE: This relative path must be preserved in distribution. -const binPath = '../wasm/xxdk-channelsIndexedDkWorker.wasm' +const binPath = require('../wasm/xxdk-channelsIndexedDkWorker.wasm'); const isReady = new Promise((resolve) => { self.onWasmInitialized = resolve; diff --git a/assets/jsutils/dmIndexedDbWorker.js b/assets/jsutils/dmIndexedDbWorker.js index 5605dba..56819be 100644 --- a/assets/jsutils/dmIndexedDbWorker.js +++ b/assets/jsutils/dmIndexedDbWorker.js @@ -6,9 +6,9 @@ //////////////////////////////////////////////////////////////////////////////// // NOTE: wasm_exec.js must always be in the same directory as this script. -importScripts('wasm_exec.js'); +importScripts(require('./wasm_exec.js')); // NOTE: This relative path must be preserved in distribution. -const binPath = '../wasm/xxdk-dmIndexedDkWorker.wasm' +const binPath = require('../wasm/xxdk-dmIndexedDkWorker.wasm'); const isReady = new Promise((resolve) => { self.onWasmInitialized = resolve; diff --git a/assets/jsutils/logFileWorker.js b/assets/jsutils/logFileWorker.js index 1ef114b..5f8f31f 100644 --- a/assets/jsutils/logFileWorker.js +++ b/assets/jsutils/logFileWorker.js @@ -6,9 +6,9 @@ //////////////////////////////////////////////////////////////////////////////// // NOTE: wasm_exec.js must always be in the same directory as this script. -importScripts('wasm_exec.js'); +importScripts(require('./wasm_exec.js')); // NOTE: This relative path must be preserved in distribution. -const binPath = '../wasm/xxdk-logFileWorker.wasm' +const binPath = require('../wasm/xxdk-logFileWorker.wasm'); const isReady = new Promise((resolve) => { self.onWasmInitialized = resolve; diff --git a/assets/jsutils/stateIndexedDbWorker.js b/assets/jsutils/stateIndexedDbWorker.js index b4009ef..091564b 100644 --- a/assets/jsutils/stateIndexedDbWorker.js +++ b/assets/jsutils/stateIndexedDbWorker.js @@ -6,9 +6,9 @@ //////////////////////////////////////////////////////////////////////////////// // NOTE: wasm_exec.js must always be in the same directory as this script. -importScripts('wasm_exec.js'); +importScripts(require('./wasm_exec.js')); // NOTE: This relative path must be preserved in distribution. -const binPath = '../wasm/xxdk-stateIndexedDkWorker.wasm' +const binPath = require('../wasm/xxdk-stateIndexedDkWorker.wasm'); const isReady = new Promise((resolve) => { self.onWasmInitialized = resolve; diff --git a/package.json b/package.json index 798ebe6..753d897 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "src": "src" }, "files": [ - "src/index.ts", "dist/*" ], "scripts": { diff --git a/src/index.ts b/src/index.ts index 39e2737..dde5e7f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,9 @@ import type { XXDKUtils } from './types'; -import '../wasm_exec.js'; +import('../assets/jsutils/wasm_exec.js'); -const xxdkWasm: URL = require('../xxdk.wasm'); + +const xxdkWasm: URL = require('../assets/wasm/xxdk.wasm'); declare global { interface Window extends XXDKUtils { @@ -22,10 +23,10 @@ export const loadWasm = () => new Promise<void>(async () => { // if (typeof window == "undefined") { const go = new window!.Go(); - let isReady = new Promise((resolve) => { window!.onWasmInitialized = resolve; }); + console.log(go); console.log(xxdk_wasm_path); console.log("IMPORT"); diff --git a/webpack.config.js b/webpack.config.js index 7944eec..fe82740 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,11 +1,19 @@ const path = require('path'); module.exports = { - entry: './src/index.ts', + entry: { + bundle: './src/index.ts', + logFileWorker: './assets/jsutils/logFileWorker.js', + channelsIndexDbWorker: './assets/jsutils/channelsIndexedDbWorker.js', + dmIndexedDbWorker: './assets/jsutils/dmIndexedDbWorker.js', + ndf: './assets/jsutils/ndf.js', + stateIndexedDbWorker: './assets/jsutils/stateIndexedDbWorker.js', + wasm_exec: './assets/jsutils/wasm_exec.js', + }, devtool: 'inline-source-map', mode: 'development', output: { - filename: 'bundle.js', + filename: '[name].js', path: path.resolve(__dirname, 'dist'), globalObject: 'this', library: { @@ -26,12 +34,12 @@ module.exports = { test: /\.wasm$/, type: 'asset/resource', generator: { - filename: 'wasm-assets/[hash][ext][query]' + filename: 'assets/wasm/[hash][ext][query]' } } ] }, resolve: { - extensions: ['.tsx', '.ts', '.js'], + extensions: ['.tsx', '.ts', 'js' ], }, }; -- GitLab