leafx
Version:
WebSocket Client & Utilities
2 lines (1 loc) • 881 B
JavaScript
var c=Object.defineProperty;var u=t=>c(t,"__esModule",{value:!0});var b=(t,s)=>{u(t);for(var e in s)c(t,e,{get:s[e],enumerable:!0})};b(exports,{lobby:()=>T});function i(t){return typeof t=="string"?t:JSON.stringify(t)}var n=new Map;function f(t,s){let e=n.get(t);if(e){if(e.has(s.id))return!1;e.set(s.id,s.ws)}else{let r=new Map;r.set(s.id,s.ws),n.set(t,r)}return!0}function p(t,s){let e=n.get(t);e&&e.get(s)&&(e.size===1?n.delete(t):e.delete(s))}function a(t,s){var e;(e=n.get(t))==null||e.forEach(r=>{r.send(i(s))})}function d(t,s,e){var r,o;(o=(r=n.get(t))==null?void 0:r.get(s))==null||o.send(i(e))}function w(t,s){var e;(e=n.get(t))==null||e.forEach(s)}function S(t){var s,e;return(e=(s=n.get(t))==null?void 0:s.size)!=null?e:0}var T={subscribe:f,unsubscribe:p,broadcastToChannel:a,sendToSubscriber:d,runForEachSubscriber:w,getSubscribersCount:S};0&&(module.exports={lobby});