@mertushka/node-datachannel
Version:
WebRTC For Node.js and Electron. libdatachannel node bindings.
1 lines • 5.43 kB
Source Map (JSON)
{"version":3,"file":"RTCIceTransport.mjs","sources":["../../../src/polyfill/RTCIceTransport.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport RTCIceCandidate from './RTCIceCandidate';\nimport RTCPeerConnection from './RTCPeerConnection';\n\nexport default class RTCIceTransport extends EventTarget implements globalThis.RTCIceTransport {\n #pc: RTCPeerConnection = null;\n\n ongatheringstatechange: globalThis.RTCIceTransport['ongatheringstatechange'] = null;\n onselectedcandidatepairchange: globalThis.RTCIceTransport['onselectedcandidatepairchange'] = null;\n onstatechange: globalThis.RTCIceTransport['onstatechange'] = null;\n\n constructor(init: { pc: RTCPeerConnection }) {\n super();\n this.#pc = init.pc;\n\n this.#pc.addEventListener('icegatheringstatechange', () => {\n const e = new Event('gatheringstatechange');\n this.dispatchEvent(e);\n this.ongatheringstatechange?.(e);\n });\n this.#pc.addEventListener('iceconnectionstatechange', () => {\n const e = new Event('statechange');\n this.dispatchEvent(e);\n this.onstatechange?.(e);\n });\n }\n\n get component(): globalThis.RTCIceComponent {\n const cp = this.getSelectedCandidatePair();\n if (!cp?.local) return null;\n return cp.local.component;\n }\n\n get gatheringState(): globalThis.RTCIceGatheringState {\n return this.#pc ? this.#pc.iceGatheringState : 'new';\n }\n\n get role(): globalThis.RTCIceRole {\n return this.#pc.localDescription!.type == 'offer' ? 'controlling' : 'controlled';\n }\n\n get state(): globalThis.RTCIceTransportState {\n return this.#pc ? this.#pc.iceConnectionState : 'new';\n }\n\n getLocalCandidates(): globalThis.RTCIceCandidate[] {\n return this.#pc?.ext_localCandidates ?? [];\n }\n\n getLocalParameters(): RTCIceParameters | null {\n return new RTCIceParameters(\n new RTCIceCandidate({\n candidate: this.#pc.selectedCandidatePair()!.local.candidate,\n sdpMLineIndex: 0,\n }),\n );\n }\n\n getRemoteCandidates(): globalThis.RTCIceCandidate[] {\n return this.#pc?.ext_remoteCandidates ?? [];\n }\n\n getRemoteParameters(): any {\n /** */\n }\n\n getSelectedCandidatePair(): globalThis.RTCIceCandidatePair | null {\n const cp = this.#pc?.selectedCandidatePair();\n if (!cp) return null;\n return {\n local: new RTCIceCandidate({\n candidate: cp.local.candidate,\n sdpMid: cp.local.mid,\n }),\n remote: new RTCIceCandidate({\n candidate: cp.remote.candidate,\n sdpMid: cp.remote.mid,\n }),\n };\n }\n}\n\nexport class RTCIceParameters implements globalThis.RTCIceParameters {\n usernameFragment = '';\n password = '';\n constructor({ usernameFragment, password = '' }) {\n this.usernameFragment = usernameFragment;\n this.password = password;\n }\n}\n"],"names":[],"mappings":"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"}