@@ -120,26 +120,7 @@ export default class RTCPeerConnection extends EventTarget implements globalThis
120
120
this . #canTrickleIceCandidates = null ;
121
121
122
122
try {
123
- const peerIdentity = ( config as any ) ?. peerIdentity ?? `peer-${ getRandomString ( 7 ) } ` ;
124
- this . #peerConnection = new PeerConnection ( peerIdentity ,
125
- {
126
- ...config ,
127
- iceServers :
128
- config ?. iceServers
129
- ?. map ( ( server ) => {
130
- const urls = Array . isArray ( server . urls ) ? server . urls : [ server . urls ] ;
131
-
132
- return urls . map ( ( url ) => {
133
- if ( server . username && server . credential ) {
134
- const [ protocol , rest ] = url . split ( / : ( .* ) / ) ;
135
- return `${ protocol } :${ server . username } :${ server . credential } @${ rest } ` ;
136
- }
137
- return url ;
138
- } ) ;
139
- } )
140
- . flat ( ) ?? [ ] ,
141
- } ,
142
- ) ;
123
+ this . #peerConnection = this . createPeerConnection ( config ) ;
143
124
} catch ( error ) {
144
125
if ( ! error || ! error . message ) throw new exceptions . NotFoundError ( 'Unknown error' ) ;
145
126
throw new exceptions . SyntaxError ( error . message ) ;
@@ -230,6 +211,30 @@ export default class RTCPeerConnection extends EventTarget implements globalThis
230
211
} ) ;
231
212
}
232
213
214
+ protected createPeerConnection ( config : RTCConfiguration ) : PeerConnection {
215
+ const peerIdentity = config . peerIdentity ?? `peer-${ getRandomString ( 7 ) } ` ;
216
+
217
+ return new PeerConnection ( peerIdentity ,
218
+ {
219
+ ...config ,
220
+ iceServers :
221
+ config ?. iceServers
222
+ ?. map ( ( server ) => {
223
+ const urls = Array . isArray ( server . urls ) ? server . urls : [ server . urls ] ;
224
+
225
+ return urls . map ( ( url ) => {
226
+ if ( server . username && server . credential ) {
227
+ const [ protocol , rest ] = url . split ( / : ( .* ) / ) ;
228
+ return `${ protocol } :${ server . username } :${ server . credential } @${ rest } ` ;
229
+ }
230
+ return url ;
231
+ } ) ;
232
+ } )
233
+ . flat ( ) ?? [ ] ,
234
+ } ,
235
+ ) ;
236
+ }
237
+
233
238
get canTrickleIceCandidates ( ) : boolean | null {
234
239
return this . #canTrickleIceCandidates;
235
240
}
0 commit comments