UNPKG

node-datachannel

Version:

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

1 lines 3.3 kB
{"version":3,"file":"RTCSctpTransport.cjs","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":["RTCDtlsTransport"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,UAAA,CAAA;AAIA,MAAqB,yBAAyB,WAAmD,CAAA;AAAA,EAM/F,YAAY,OAAoC,EAAA;AAC9C,IAAM,KAAA,EAAA,CAAA;AANR,IAAyB,YAAA,CAAA,IAAA,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA;AACzB,IAA0C,YAAA,CAAA,IAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAE1C,IAA8D,aAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAI5D,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,OAAQ,CAAA,EAAA,CAAA,CAAA;AAEnB,IAAK,YAAA,CAAA,IAAA,EAAA,UAAA,EAAa,IAAIA,wBAAiB,CAAA;AAAA,MACrC,IAAI,OAAQ,CAAA,EAAA;AAAA,KACb,CAAA,CAAA,CAAA;AAED,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,uBAAA,EAAyB,MAAM;AACvD,MAAM,MAAA,CAAA,GAAI,IAAI,KAAA,CAAM,aAAa,CAAA,CAAA;AACjC,MAAA,IAAA,CAAK,cAAc,CAAC,CAAA,CAAA;AACpB,MAAA,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;AAAA,KACvB,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,IAAI,WAA6B,GAAA;AAC/B,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAA,OAAO,mBAAK,GAAI,CAAA,CAAA,oBAAA,CAAA;AAAA,GAClB;AAAA,EAEA,IAAI,cAAyB,GAAA;AAC3B,IAAI,IAAA,IAAA,CAAK,KAAU,KAAA,WAAA,EAAoB,OAAA,IAAA,CAAA;AACvC,IAAO,OAAA,YAAA,CAAA,IAAA,EAAK,MAAK,kBAAsB,IAAA,KAAA,CAAA;AAAA,GACzC;AAAA,EAEA,IAAI,KAA0C,GAAA;AAG5C,IAAI,IAAA,KAAA,GAAQ,mBAAK,GAAI,CAAA,CAAA,eAAA,CAAA;AACrB,IAAI,IAAA,KAAA,KAAU,KAAS,IAAA,KAAA,KAAU,YAAc,EAAA;AAC7C,MAAQ,KAAA,GAAA,YAAA,CAAA;AAAA,eACC,KAAU,KAAA,cAAA,IAAkB,KAAU,KAAA,QAAA,IAAY,UAAU,QAAU,EAAA;AAC/E,MAAQ,KAAA,GAAA,QAAA,CAAA;AAAA,KACV;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAAA,EAEA,IAAI,SAAyC,GAAA;AAC3C,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AAAA,GACd;AACF,CAAA;AA7CE,GAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,UAAA,GAAA,IAAA,OAAA,EAAA;;;;"}