]> git.codecow.com Git - libnemo.git/commitdiff
Move worker blob outside of Vault class to module scope.
authorChris Duncan <chris@zoso.dev>
Tue, 9 Sep 2025 03:58:05 +0000 (20:58 -0700)
committerChris Duncan <chris@zoso.dev>
Tue, 9 Sep 2025 03:58:05 +0000 (20:58 -0700)
src/lib/vault/index.ts

index 103096660d4faa906f26e9aa66f1e7c08f8ee965..ca5487b8bd7e0be64edfcb9f6fed22e7dc6e4352 100644 (file)
@@ -16,27 +16,6 @@ type Task = {
 }
 
 export class Vault {
-       static get #blob () {
-               return `
-                       const ${Bip39.name} = ${Bip39}
-                       const ${Bip44.name} = ${Bip44}
-                       const ${Blake2b.name} = ${Blake2b}
-                       const ${NanoNaCl.name} = ${NanoNaCl}
-                       const ${WalletAesGcm.name} = ${WalletAesGcm}
-                       const ${Passkey.name} = ${Passkey}
-                       const ${VaultTimer.name} = ${VaultTimer}
-                       const ${VaultWorker.name} = ${VaultWorker}
-                       ${Bip39.name === 'Bip39' ? '' : `const Bip39 = ${Bip39.name}`}
-                       ${Bip44.name === 'Bip44' ? '' : `const Bip44 = ${Bip44.name}`}
-                       ${Blake2b.name === 'Blake2b' ? '' : `const Blake2b = ${Blake2b.name}`}
-                       ${NanoNaCl.name === 'NanoNaCl' ? '' : `const NanoNaCl = ${NanoNaCl.name}`}
-                       ${WalletAesGcm.name === 'WalletAesGcm' ? '' : `const WalletAesGcm = ${WalletAesGcm.name}`}
-                       ${Passkey.name === 'Passkey' ? '' : `const Passkey = ${Passkey.name}`}
-                       ${VaultTimer.name === 'VaultTimer' ? '' : `const VaultTimer = ${VaultTimer.name}`}
-                       ${VaultWorker.name === 'VaultWorker' ? '' : `const VaultWorker = ${VaultWorker.name}`}
-                       const v = new VaultWorker()
-               `
-       }
        static #instances: Vault[] = []
        static get instances (): Vault[] { return this.#instances }
 
@@ -51,12 +30,12 @@ export class Vault {
                this.#isIdle = true
                this.#isTerminated = false
                this.#queue = []
-               this.#url = URL.createObjectURL(new Blob([Vault.#blob], { type: 'text/javascript' }))
+               this.#url = URL.createObjectURL(new Blob([blob], { type: 'text/javascript' }))
                BROWSER: this.#worker = new Worker(this.#url, { type: 'module' })
                BROWSER: this.#worker.addEventListener('message', message => {
                        this.#report(message.data)
                })
-               NODE: this.#worker = new NodeWorker(Vault.#blob, {
+               NODE: this.#worker = new NodeWorker(blob, {
                        eval: true,
                        stderr: false,
                        stdout: false
@@ -135,3 +114,23 @@ export class Vault {
                }
        }
 }
+
+const blob = `
+       const ${Bip39.name} = ${Bip39}
+       const ${Bip44.name} = ${Bip44}
+       const ${Blake2b.name} = ${Blake2b}
+       const ${NanoNaCl.name} = ${NanoNaCl}
+       const ${WalletAesGcm.name} = ${WalletAesGcm}
+       const ${Passkey.name} = ${Passkey}
+       const ${VaultTimer.name} = ${VaultTimer}
+       const ${VaultWorker.name} = ${VaultWorker}
+       ${Bip39.name === 'Bip39' ? '' : `const Bip39 = ${Bip39.name}`}
+       ${Bip44.name === 'Bip44' ? '' : `const Bip44 = ${Bip44.name}`}
+       ${Blake2b.name === 'Blake2b' ? '' : `const Blake2b = ${Blake2b.name}`}
+       ${NanoNaCl.name === 'NanoNaCl' ? '' : `const NanoNaCl = ${NanoNaCl.name}`}
+       ${WalletAesGcm.name === 'WalletAesGcm' ? '' : `const WalletAesGcm = ${WalletAesGcm.name}`}
+       ${Passkey.name === 'Passkey' ? '' : `const Passkey = ${Passkey.name}`}
+       ${VaultTimer.name === 'VaultTimer' ? '' : `const VaultTimer = ${VaultTimer.name}`}
+       ${VaultWorker.name === 'VaultWorker' ? '' : `const VaultWorker = ${VaultWorker.name}`}
+       const v = new VaultWorker()
+`