UNPKG

node-datachannel

Version:

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

1 lines 5.66 kB
{"version":3,"file":"RTCIceTransport.cjs","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 #extraFunctions = null;\n\n ongatheringstatechange: ((this: RTCIceTransport, ev: Event) => any) | null = null;\n onselectedcandidatepairchange: ((this: RTCIceTransport, ev: Event) => any) | null = null;\n onstatechange: ((this: RTCIceTransport, ev: Event) => any) | null = null;\n\n constructor(init: { pc: RTCPeerConnection, extraFunctions }) {\n super();\n this.#pc = init.pc;\n this.#extraFunctions = init.extraFunctions;\n\n // forward peerConnection events\n this.#pc.addEventListener('icegatheringstatechange', () => {\n this.dispatchEvent(new Event('gatheringstatechange'));\n });\n this.#pc.addEventListener('iceconnectionstatechange', () => {\n this.dispatchEvent(new Event('statechange'));\n });\n\n // forward events to properties\n this.addEventListener('gatheringstatechange', (e) => {\n if (this.ongatheringstatechange) this.ongatheringstatechange(e);\n });\n this.addEventListener('statechange', (e) => {\n if (this.onstatechange) this.onstatechange(e);\n });\n }\n\n get component(): globalThis.RTCIceComponent {\n const cp = this.getSelectedCandidatePair();\n if (!cp) 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(): string {\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(): RTCIceCandidate[] {\n return this.#pc ? this.#extraFunctions.localCandidates() : [];\n }\n\n getLocalParameters(): any {\n /** */\n }\n\n getRemoteCandidates(): RTCIceCandidate[] {\n return this.#pc ? this.#extraFunctions.remoteCandidates() : [];\n }\n\n getRemoteParameters(): any {\n /** */\n }\n\n getSelectedCandidatePair(): globalThis.RTCIceCandidatePair | null {\n const cp = this.#extraFunctions.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"],"names":["RTCIceCandidate"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAA,GAAA,EAAA,eAAA,CAAA;AAIA,MAAqB,wBAAwB,WAAkD,CAAA;AAAA,EAQ3F,YAAY,IAAiD,EAAA;AACzD,IAAM,KAAA,EAAA,CAAA;AARV,IAAyB,YAAA,CAAA,IAAA,EAAA,GAAA,EAAA,IAAA,CAAA,CAAA;AACzB,IAAkB,YAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAElB,IAA6E,aAAA,CAAA,IAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,CAAA;AAC7E,IAAoF,aAAA,CAAA,IAAA,EAAA,+BAAA,EAAA,IAAA,CAAA,CAAA;AACpF,IAAoE,aAAA,CAAA,IAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAIhE,IAAA,YAAA,CAAA,IAAA,EAAK,KAAM,IAAK,CAAA,EAAA,CAAA,CAAA;AAChB,IAAA,YAAA,CAAA,IAAA,EAAK,iBAAkB,IAAK,CAAA,cAAA,CAAA,CAAA;AAG5B,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,yBAAA,EAA2B,MAAM;AACvD,MAAA,IAAA,CAAK,aAAc,CAAA,IAAI,KAAM,CAAA,sBAAsB,CAAC,CAAA,CAAA;AAAA,KACvD,CAAA,CAAA;AACD,IAAK,YAAA,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,0BAAA,EAA4B,MAAM;AACxD,MAAA,IAAA,CAAK,aAAc,CAAA,IAAI,KAAM,CAAA,aAAa,CAAC,CAAA,CAAA;AAAA,KAC9C,CAAA,CAAA;AAGD,IAAK,IAAA,CAAA,gBAAA,CAAiB,sBAAwB,EAAA,CAAC,CAAM,KAAA;AACjD,MAAA,IAAI,IAAK,CAAA,sBAAA,EAA6B,IAAA,CAAA,sBAAA,CAAuB,CAAC,CAAA,CAAA;AAAA,KACjE,CAAA,CAAA;AACD,IAAK,IAAA,CAAA,gBAAA,CAAiB,aAAe,EAAA,CAAC,CAAM,KAAA;AACxC,MAAA,IAAI,IAAK,CAAA,aAAA,EAAoB,IAAA,CAAA,aAAA,CAAc,CAAC,CAAA,CAAA;AAAA,KAC/C,CAAA,CAAA;AAAA,GACL;AAAA,EAEA,IAAI,SAAwC,GAAA;AACxC,IAAM,MAAA,EAAA,GAAK,KAAK,wBAAyB,EAAA,CAAA;AACzC,IAAI,IAAA,CAAC,IAAW,OAAA,IAAA,CAAA;AAChB,IAAA,OAAO,GAAG,KAAM,CAAA,SAAA,CAAA;AAAA,GACpB;AAAA,EAEA,IAAI,cAAkD,GAAA;AAClD,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,iBAAoB,GAAA,KAAA,CAAA;AAAA,GACnD;AAAA,EAEA,IAAI,IAAe,GAAA;AACf,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,gBAAiB,CAAA,IAAA,IAAQ,UAAU,aAAgB,GAAA,YAAA,CAAA;AAAA,GACvE;AAAA,EAEA,IAAI,KAAyC,GAAA;AACzC,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,GAAM,YAAK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAI,kBAAqB,GAAA,KAAA,CAAA;AAAA,GACpD;AAAA,EAEA,kBAAwC,GAAA;AACpC,IAAA,OAAO,mBAAK,GAAM,CAAA,GAAA,YAAA,CAAA,IAAA,EAAK,eAAgB,CAAA,CAAA,eAAA,KAAoB,EAAC,CAAA;AAAA,GAChE;AAAA,EAEA,kBAA0B,GAAA;AAAA,GAE1B;AAAA,EAEA,mBAAyC,GAAA;AACrC,IAAA,OAAO,mBAAK,GAAM,CAAA,GAAA,YAAA,CAAA,IAAA,EAAK,eAAgB,CAAA,CAAA,gBAAA,KAAqB,EAAC,CAAA;AAAA,GACjE;AAAA,EAEA,mBAA2B,GAAA;AAAA,GAE3B;AAAA,EAEA,wBAAkE,GAAA;AAC9D,IAAM,MAAA,EAAA,GAAK,YAAK,CAAA,IAAA,EAAA,eAAA,CAAA,CAAgB,qBAAsB,EAAA,CAAA;AACtD,IAAI,IAAA,CAAC,IAAW,OAAA,IAAA,CAAA;AAChB,IAAO,OAAA;AAAA,MACH,KAAA,EAAO,IAAIA,uBAAgB,CAAA;AAAA,QACvB,SAAA,EAAW,GAAG,KAAM,CAAA,SAAA;AAAA,QACpB,MAAA,EAAQ,GAAG,KAAM,CAAA,GAAA;AAAA,OACpB,CAAA;AAAA,MACD,MAAA,EAAQ,IAAIA,uBAAgB,CAAA;AAAA,QACxB,SAAA,EAAW,GAAG,MAAO,CAAA,SAAA;AAAA,QACrB,MAAA,EAAQ,GAAG,MAAO,CAAA,GAAA;AAAA,OACrB,CAAA;AAAA,KACL,CAAA;AAAA,GACJ;AACJ,CAAA;AA7EI,GAAA,GAAA,IAAA,OAAA,EAAA,CAAA;AACA,eAAA,GAAA,IAAA,OAAA,EAAA;;;;"}