UNPKG

@r_wohl/web-channel-message

Version:

A light weight type-safe library for communicating via the Channel Message Web API

54 lines (53 loc) 1.32 kB
"use strict"; // src/worker.ts var _self = self; var connections = /* @__PURE__ */ new Set(); _self.onconnect = function(e) { const port = e.ports[0]; if (!port) { throw new Error("error connecting to message port"); } console.log("connections: ", connections); connections.add(port); connections.forEach((conn) => { const message = { type: "internal", channelData: { connections: connections.size } }; conn.postMessage(message); }); port.onmessage = function(e2) { const message = e2.data; if (message && message.type === "close") { port.close(); console.log("deleting port: ", port); connections.delete(port); connections.forEach((conn) => { const message2 = { type: "internal", channelData: { connections: connections.size } }; conn.postMessage(message2); }); return; } if (message && message.action === "broadcast") { connections.forEach((conn) => { if (conn !== port) { conn.postMessage(message); } }); } if (message && message.action === "all") { connections.forEach((conn) => { conn.postMessage(message); }); } }; port.start(); }; //# sourceMappingURL=worker.js.map