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

index a7219bf5c1d6fb0472cbfa587b36dd6ff7b08819..ba22262e0c81faa99dba63c194197e2e80db1dc7 100644 (file)
@@ -33,7 +33,7 @@ export class Vault {
                this.#isTerminated = false
                this.#queue = []
                //@ts-expect-error
-               this.#url = URL.createObjectURL(new Blob([VAULT_WORKER], { type: 'text/javascript' }))
+               BROWSER: this.#url = URL.createObjectURL(new Blob([VAULT_WORKER], { type: 'text/javascript' }))
                BROWSER: this.#worker = new Worker(this.#url, { type: 'module' })
                BROWSER: this.#worker.addEventListener('message', message => {
                        this.#report(message.data)
@@ -47,6 +47,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 c918301c0ac9e07a0294d32ec554c023eec9460b..196ede5e8f3e78e38efce7cb4a7ed06763972366 100644 (file)
@@ -2,7 +2,7 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import * as nano25519 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'
@@ -22,7 +22,8 @@ let _mnemonic: ArrayBuffer | undefined = undefined
 
 const listener = (event: MessageEvent<any>): void => {
        const { url, id } = event.data
-       if (url !== location.href) return
+       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)