]> git.codecow.com Git - libnemo.git/commitdiff
Fix worker URL matching.
authorChris Duncan <chris@zoso.dev>
Fri, 3 Apr 2026 22:53:40 +0000 (15:53 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 3 Apr 2026 22:53:40 +0000 (15:53 -0700)
src/lib/vault/index.ts
src/lib/vault/vault-worker.ts

index cab910414c8a0ea0a7908664fd81c41e571b18e4..865782192287d9120bb9c49817d316bd9c16acdf 100644 (file)
@@ -35,7 +35,7 @@ export class Vault {
                this.#isLocked = true
                this.#isTerminated = false
                this.#queue = []
-               this.#url = URL.createObjectURL(new Blob([vaultWorker], { type: 'text/javascript' }))
+               BROWSER: this.#url = URL.createObjectURL(new Blob([vaultWorker], { type: 'text/javascript' }))
                BROWSER: this.#worker = new Worker(this.#url, { type: 'module' })
                BROWSER: this.#worker.addEventListener('message', message => {
                        this.#report(message.data)
@@ -48,6 +48,7 @@ export class Vault {
                NODE: this.#worker.on('message', message => {
                        this.#report(message)
                })
+               NODE: this.#url = this.#worker.threadId.toString()
        }
 
        get isLocked (): boolean { return this.#isLocked }
index fe36a8cdf91f6711c69d2be9f43fc7ea40f69a17..bd6a6f286d2503c3dc49ca43a26b02aad659fd40 100644 (file)
@@ -2,7 +2,7 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { derive as nano25519_derive, sign as nano25519_sign } from 'nano25519'
-import { parentPort } from 'node:worker_threads'
+import { parentPort, threadId } from 'node:worker_threads'
 import { BIP44_COIN_NANO } from '../constants'
 import { Bip39, Bip44, Blake2b, WalletAesGcm } from '../crypto'
 import { WalletType } from '../wallet'
@@ -23,6 +23,7 @@ let _mnemonic: ArrayBuffer | undefined = undefined
 const listener = (event: MessageEvent<any>): void => {
        const { url, id } = event.data
        BROWSER: if (url !== location.href) return
+       NODE: if (url !== threadId.toString()) return
        NODE: if (parentPort == null) setTimeout(() => listener(event), 0)
        const data = _parseData(event.data)
        const action = _parseAction(data)