create new worker when passing it to sw

This commit is contained in:
Toshit Chawda 2024-07-07 16:59:51 -07:00
parent c5aeec4ee8
commit c540450b66
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D

View file

@ -49,13 +49,15 @@ type BroadcastMessage = {
function createPort(path: string, channel: BroadcastChannel): MessagePort {
const worker = new SharedWorker(path, "bare-mux-worker");
// uv removes navigator.serviceWorker so this errors
if (navigator.serviceWorker)
if (navigator.serviceWorker) {
navigator.serviceWorker.addEventListener("message", event => {
if (event.data.type === "getPort" && event.data.port) {
console.debug("bare-mux: recieved request for port from sw");
const worker = new SharedWorker(path, "bare-mux-worker");
event.data.port.postMessage(worker.port, [worker.port]);
}
});
}
channel.onmessage = (event: MessageEvent) => {
if (event.data.type === "getPath") {
console.debug("bare-mux: recieved request for worker path from broadcast channel");