{"version":3,"file":"Connection.js","sourceRoot":"","sources":["../src/Connection.ts"],"names":[],"mappings":";;;AAAA,yDAA+D;AAE/D,uEAAoE;AAEpE,MAAa,UAAU;IAInB,YAAY,QAAiB;QAF7B,WAAM,GAAuB,EAAE,CAAC;QAG5B,QAAQ,QAAQ,EAAE,CAAC;YACf,KAAK,IAAI;gBACL,IAAI,CAAC,SAAS,GAAG,IAAI,kCAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvD,MAAM;YAEV;gBACI,IAAI,CAAC,SAAS,GAAG,IAAI,uCAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,MAAM;QACd,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAW,EAAE,OAAa;QAC9B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,CAAC,IAAyB;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,IAAyB;QACpC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAa,EAAE,MAAe;QAChC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACjC,CAAC;CAEJ;AApCD,gCAoCC","sourcesContent":["import { H3TransportTransport } from \"./transport/H3Transport\";\nimport { ITransport, ITransportEventMap } from \"./transport/ITransport\";\nimport { WebSocketTransport } from \"./transport/WebSocketTransport\";\n\nexport class Connection implements ITransport {\n    transport: ITransport;\n    events: ITransportEventMap = {};\n\n    constructor(protocol?: string) {\n        switch (protocol) {\n            case \"h3\":\n                this.transport = new H3TransportTransport(this.events);\n                break;\n\n            default:\n                this.transport = new WebSocketTransport(this.events);\n                break;\n        }\n    }\n\n    connect(url: string, options?: any): void {\n        this.transport.connect.call(this.transport, url, options);\n    }\n\n    send(data: Buffer | Uint8Array): void {\n        this.transport.send(data);\n    }\n\n    sendUnreliable(data: Buffer | Uint8Array): void {\n        this.transport.sendUnreliable(data);\n    }\n\n    close(code?: number, reason?: string): void {\n        this.transport.close(code, reason);\n    }\n\n    get isOpen() {\n        return this.transport.isOpen;\n    }\n\n}\n"]}