// Create worker module
function init (): void {
try {
- BROWSER: url = URL.createObjectURL(new Blob([nano25519_worker], { type: 'text/javascript' }))
- BROWSER: worker = new Worker(url, { type: 'module' })
- NODE: worker = new NodeWorker(nano25519_worker, {
- eval: true,
- stderr: false,
- stdout: false
- })
- NODE: url = worker.threadId.toString()
+ BROWSER: {
+ url = URL.createObjectURL(new Blob([nano25519_worker], { type: 'text/javascript' }))
+ worker = new Worker(url, { type: 'module' })
+ }
+ NODE: {
+ worker = new NodeWorker(nano25519_worker, {
+ eval: true,
+ stderr: false,
+ stdout: false
+ })
+ url = worker.threadId.toString()
+ }
console.log(`nano25519 initialized.`)
isWorkerReady = true
} catch (err: any) {
reject()
}
}
- //@ts-expect-error
- BROWSER: worker.onerror = err => reject(err.message)
- //@ts-expect-error
- BROWSER: worker.onmessage = onstarted
- //@ts-expect-error
- NODE: worker.on('error', err => reject(err.message))
- //@ts-expect-error
- NODE: worker.on('message', onstarted)
console.log(`starting worker`)
const id = crypto.randomUUID()
- BROWSER: worker.postMessage({ url, id, action: 'start' })
- NODE: worker.postMessage({ data: { url, id, action: 'start' } })
+ BROWSER: {
+ worker = worker as Worker
+ worker.onerror = reject
+ worker.onmessage = onstarted
+ worker.postMessage({ url, id, action: 'start' })
+ }
+ NODE: {
+ worker = worker as unknown as NodeWorker
+ worker.on('error', reject)
+ worker.on('message', onstarted)
+ worker.postMessage({ data: { url, id, action: 'start' } })
+ }
})
}
}
}
resolve(result)
}
- //@ts-expect-error
- BROWSER: worker.onerror = reject
- //@ts-expect-error
- BROWSER: worker.onmessage = onresult
- //@ts-expect-error
- NODE: worker.on('error', reject)
- //@ts-expect-error
- NODE: worker.on('message', onresult)
console.log(`sending data to worker: `, data)
data.url = url
data.id = crypto.randomUUID()
- BROWSER: worker.postMessage(data, transfer)
- NODE: worker.postMessage({ data }, transfer)
+ BROWSER: {
+ worker = worker as Worker
+ worker.onerror = reject
+ worker.onmessage = onresult
+ worker.postMessage(data, transfer)
+ }
+ NODE: {
+ worker = worker as unknown as NodeWorker
+ worker.on('error', reject)
+ worker.on('message', onresult)
+ worker.postMessage({ data }, transfer)
+ }
})
}
reject(result)
}
}
- //@ts-expect-error
- BROWSER: worker.onerror = reject
- //@ts-expect-error
- BROWSER: worker.onmessage = onstop
- //@ts-expect-error
- NODE: worker.on('error', reject)
- //@ts-expect-error
- NODE: worker.on('message', onstop)
console.log(`stopping worker`)
const id = crypto.randomUUID()
- BROWSER: worker.postMessage({ url, id, action: 'stop' })
- NODE: worker.postMessage({ data: { url, id, action: 'stop' } })
+ BROWSER: {
+ worker = worker as Worker
+ worker.onerror = reject
+ worker.onmessage = onstop
+ worker.postMessage({ url, id, action: 'stop' })
+ }
+ NODE: {
+ worker = worker as unknown as NodeWorker
+ worker.on('error', reject)
+ worker.on('message', onstop)
+ worker.postMessage({ data: { url, id, action: 'stop' } })
+ }
})
}