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