{"version":3,"file":"WebSocketTransport.mjs","sources":["../../../../src/transport/WebSocketTransport.ts"],"sourcesContent":["import NodeWebSocket from \"ws\";\nimport { ITransport, ITransportEventMap } from \"./ITransport\";\n\nconst WebSocket = globalThis.WebSocket || NodeWebSocket;\n\nexport class WebSocketTransport implements ITransport {\n    ws: WebSocket | NodeWebSocket;\n    protocols?: string | string[];\n\n    constructor(public events: ITransportEventMap) {}\n\n    public send(data: ArrayBuffer | Array<number>): void {\n        if (data instanceof ArrayBuffer) {\n            this.ws.send(data);\n\n        } else if (Array.isArray(data)) {\n            this.ws.send((new Uint8Array(data)).buffer);\n        }\n    }\n\n    public connect(url: string) {\n        this.ws = new WebSocket(url, this.protocols);\n        this.ws.binaryType = 'arraybuffer';\n        this.ws.onopen = this.events.onopen;\n        this.ws.onmessage = this.events.onmessage;\n        this.ws.onclose = this.events.onclose;\n        this.ws.onerror = this.events.onerror;\n    }\n\n    public close(code?: number, reason?: string) {\n        this.ws.close(code, reason);\n    }\n\n}"],"names":[],"mappings":";;;AAGA,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,IAAI,aAAa,CAAC;MAE3C,kBAAkB,CAAA;AAIR,IAAA,MAAA,CAAA;AAHnB,IAAA,EAAE,CAA4B;AAC9B,IAAA,SAAS,CAAqB;AAE9B,IAAA,WAAA,CAAmB,MAA0B,EAAA;QAA1B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;KAAI;AAE1C,IAAA,IAAI,CAAC,IAAiC,EAAA;QACzC,IAAI,IAAI,YAAY,WAAW,EAAE;AAC7B,YAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEtB,SAAA;AAAM,aAAA,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/C,SAAA;KACJ;AAEM,IAAA,OAAO,CAAC,GAAW,EAAA;AACtB,QAAA,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;KACzC;IAEM,KAAK,CAAC,IAAa,EAAE,MAAe,EAAA;QACvC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC/B;AAEJ;;;;"}