UNPKG

@mertushka/node-datachannel

Version:

WebRTC For Node.js and Electron. libdatachannel node bindings.

1 lines 3.13 kB
{"version":3,"file":"RTCSctpTransport.mjs","sources":["../../../src/polyfill/RTCSctpTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCDtlsTransport from './RTCDtlsTransport';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCSctpTransport extends EventTarget implements globalThis.RTCSctpTransport {\n #pc: RTCPeerConnection = null;\n #transport: globalThis.RTCDtlsTransport = null;\n\n onstatechange: globalThis.RTCSctpTransport['onstatechange'] = null;\n\n constructor(initial: { pc: RTCPeerConnection }) {\n super();\n this.#pc = initial.pc;\n\n this.#transport = new RTCDtlsTransport({\n pc: initial.pc,\n });\n\n this.#pc.addEventListener('connectionstatechange', () => {\n const e = new Event('statechange');\n this.dispatchEvent(e);\n this.onstatechange?.(e);\n });\n }\n\n get maxChannels(): number | null {\n if (this.state !== 'connected') return null;\n return this.#pc.ext_maxDataChannelId;\n }\n\n get maxMessageSize(): number {\n if (this.state !== 'connected') return null;\n return this.#pc?.ext_maxMessageSize ?? 65536;\n }\n\n get state(): globalThis.RTCSctpTransportState {\n // reduce state from new, connecting, connected, disconnected, failed, closed, unknown\n // to RTCSctpTransport states connecting, connected, closed\n let state = this.#pc.connectionState;\n if (state === 'new' || state === 'connecting') {\n state = 'connecting';\n } else if (state === 'disconnected' || state === 'failed' || state === 'closed') {\n state = 'closed';\n }\n return state;\n }\n\n get transport(): globalThis.RTCDtlsTransport {\n return this.#transport;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,UAAA;AAIA,MAAqB,yBAAyB,WAAA,CAAmD;AAAA,EAM/F,YAAY,OAAA,EAAoC;AAC9C,IAAA,KAAA,EAAM;AANR,IAAA,YAAA,CAAA,IAAA,EAAA,GAAA,EAAyB,IAAA,CAAA;AACzB,IAAA,YAAA,CAAA,IAAA,EAAA,UAAA,EAA0C,IAAA,CAAA;AAE1C,IAAA,aAAA,CAAA,IAAA,EAAA,eAAA,EAA8D,IAAA,CAAA;AAI5D,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,OAAA,CAAQ,EAAA,CAAA;AAEnB,IAAA,YAAA,CAAA,IAAA,EAAK,UAAA,EAAa,IAAI,gBAAA,CAAiB;AAAA,MACrC,IAAI,OAAA,CAAQ;AAAA,KACb,CAAA,CAAA;AAED,IAAA,YAAA,CAAA,IAAA,EAAK,GAAA,CAAA,CAAI,gBAAA,CAAiB,uBAAA,EAAyB,MAAM;AACvD,MAAA,MAAM,CAAA,GAAI,IAAI,KAAA,CAAM,aAAa,CAAA;AACjC,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA;AACpB,MAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA;AAAA,KACvB,CAAA;AAAA;AACH,EAEA,IAAI,WAAA,GAA6B;AAC/B,IAAA,IAAI,IAAA,CAAK,KAAA,KAAU,WAAA,EAAa,OAAO,IAAA;AACvC,IAAA,OAAO,mBAAK,GAAA,CAAA,CAAI,oBAAA;AAAA;AAClB,EAEA,IAAI,cAAA,GAAyB;AAC3B,IAAA,IAAI,IAAA,CAAK,KAAA,KAAU,WAAA,EAAa,OAAO,IAAA;AACvC,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,MAAK,kBAAA,IAAsB,KAAA;AAAA;AACzC,EAEA,IAAI,KAAA,GAA0C;AAG5C,IAAA,IAAI,KAAA,GAAQ,mBAAK,GAAA,CAAA,CAAI,eAAA;AACrB,IAAA,IAAI,KAAA,KAAU,KAAA,IAAS,KAAA,KAAU,YAAA,EAAc;AAC7C,MAAA,KAAA,GAAQ,YAAA;AAAA,eACC,KAAA,KAAU,cAAA,IAAkB,KAAA,KAAU,QAAA,IAAY,UAAU,QAAA,EAAU;AAC/E,MAAA,KAAA,GAAQ,QAAA;AAAA;AAEV,IAAA,OAAO,KAAA;AAAA;AACT,EAEA,IAAI,SAAA,GAAyC;AAC3C,IAAA,OAAO,YAAA,CAAA,IAAA,EAAK,UAAA,CAAA;AAAA;AAEhB;AA7CE,GAAA,GAAA,IAAA,OAAA,EAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}