Latica
by Peter Johnson
JavaScript
const url = URL.createObjectURL(new Blob([ 'importScripts("https://kaat.missinglink.co.nz/latica/worker.js")' ], { type: "text/javascript" }))
const worker = new Worker(url)
const channel = new MessageChannel()
worker.addEventListener('error', console.error.bind(console))
worker.postMessage(
{ port: channel.port2 },
[ channel.port2 ]
)
channel.port1.onmessage = (ev) => { console.log(ev.data.prop, JSON.stringify(ev.data.data)) }
import { Encryption } from 'https://kaat.missinglink.co.nz/latica/encryption.js'
const data = {
peerId: await Encryption.createId(),
signingKeys: await Encryption.createKeyPair(),
clusterId: await Encryption.createClusterId('kaat')
}
channel.port1.postMessage({
prop: 'create',
data,
seq: 1
})
channel.port1.postMessage({
prop: 'init',
data: null,
seq: 2
})