// Send command and relevant data to nano25519 worker
async function dispatch (data: { [key: string]: string | ArrayBuffer | Uint8Array<ArrayBuffer> }): Promise<boolean | string | Uint8Array<ArrayBuffer>> {
return new Promise((resolve, reject) => {
+ const id = crypto.randomUUID()
const transfer: ArrayBuffer[] = []
for (let k of Object.keys(data)) {
if (isBytes(data[k])) {
const onresult = (msg: { data: Record<string, unknown> }): void => {
const { data } = msg
if (data.url !== url) return
+ if (data.id !== id) return
const { result } = data
console.log(`received result from worker: `, result)
if (typeof result !== 'boolean' && typeof result !== 'string' && !isBytes(result)) {
}
console.log(`sending data to worker: `, data)
data.url = url
- data.id = crypto.randomUUID()
+ data.id = id
BROWSER: {
worker = worker as Worker
worker.onerror = reject