@mertushka/node-datachannel
Version:
WebRTC For Node.js and Electron. libdatachannel node bindings.
1 lines • 8.1 kB
Source Map (JSON)
{"version":3,"file":"RTCIceCandidate.mjs","sources":["../../../src/polyfill/RTCIceCandidate.ts"],"sourcesContent":["// https://developer.mozilla.org/docs/Web/API/RTCIceCandidate\n//\n// Example: candidate:123456 1 UDP 123456 192.168.1.1 12345 typ host raddr=10.0.0.1 rport=54321 generation 0\n\nexport default class RTCIceCandidate implements globalThis.RTCIceCandidate {\n #address: string | null;\n #candidate: string;\n #component: globalThis.RTCIceComponent | null;\n #foundation: string | null;\n #port: number | null;\n #priority: number | null;\n #protocol: globalThis.RTCIceProtocol | null;\n #relatedAddress: string | null;\n #relatedPort: number | null;\n #sdpMLineIndex: number | null;\n #sdpMid: string | null;\n #tcpType: globalThis.RTCIceTcpCandidateType | null;\n #type: globalThis.RTCIceCandidateType | null;\n #usernameFragment: string | null;\n\n constructor({\n candidate,\n sdpMLineIndex,\n sdpMid,\n usernameFragment,\n }: globalThis.RTCIceCandidateInit) {\n if (sdpMLineIndex == null && sdpMid == null)\n throw new TypeError('At least one of sdpMLineIndex or sdpMid must be specified');\n\n this.#candidate = candidate === null ? 'null' : (candidate ?? '');\n this.#sdpMLineIndex = sdpMLineIndex ?? null;\n this.#sdpMid = sdpMid ?? null;\n this.#usernameFragment = usernameFragment ?? null;\n\n if (candidate) {\n const fields = candidate.split(' ');\n this.#foundation = fields[0]!.replace('candidate:', ''); // remove text candidate:\n this.#component = fields[1] == '1' ? 'rtp' : 'rtcp';\n this.#protocol = fields[2] as globalThis.RTCIceProtocol;\n this.#priority = parseInt(fields[3], 10);\n this.#address = fields[4];\n this.#port = parseInt(fields[5], 10);\n this.#type = fields[7] as globalThis.RTCIceCandidateType;\n this.#tcpType = null;\n this.#relatedAddress = null;\n this.#relatedPort = null;\n\n // Parse the candidate string to extract relatedPort and relatedAddress\n for (let i = 8; i < fields.length; i++) {\n const field = fields[i];\n if (field === 'raddr') {\n this.#relatedAddress = fields[i + 1];\n } else if (field === 'rport') {\n this.#relatedPort = parseInt(fields[i + 1], 10);\n }\n\n if (this.#protocol === 'tcp' && field === 'tcptype') {\n this.#tcpType = fields[i + 1] as globalThis.RTCIceTcpCandidateType;\n }\n }\n }\n }\n\n get address(): string | null {\n return this.#address ?? null;\n }\n\n get candidate(): string {\n return this.#candidate;\n }\n\n get component(): globalThis.RTCIceComponent | null {\n return this.#component;\n }\n\n get foundation(): string | null {\n return this.#foundation ?? null;\n }\n\n get port(): number | null {\n return this.#port ?? null;\n }\n\n get priority(): number | null {\n return this.#priority ?? null;\n }\n\n get protocol(): globalThis.RTCIceProtocol | null {\n return this.#protocol ?? null;\n }\n\n get relatedAddress(): string | null {\n return this.#relatedAddress;\n }\n\n get relatedPort(): number | null {\n return this.#relatedPort ?? null;\n }\n\n get sdpMLineIndex(): number | null {\n return this.#sdpMLineIndex;\n }\n\n get sdpMid(): string | null {\n return this.#sdpMid;\n }\n\n get tcpType(): globalThis.RTCIceTcpCandidateType | null {\n return this.#tcpType;\n }\n\n get type(): globalThis.RTCIceCandidateType | null {\n return this.#type ?? null;\n }\n\n get usernameFragment(): string | null {\n return this.#usernameFragment;\n }\n\n toJSON(): globalThis.RTCIceCandidateInit {\n return {\n candidate: this.#candidate,\n sdpMLineIndex: this.#sdpMLineIndex,\n sdpMid: this.#sdpMid,\n usernameFragment: this.#usernameFragment,\n };\n }\n}\n"],"names":[],"mappings":"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"}