diff --git a/docs/api-reference.md b/docs/api-reference.md index 189f001..fa52296 100644 --- a/docs/api-reference.md +++ b/docs/api-reference.md @@ -79,6 +79,7 @@ Subscribe to events using `network.on(eventName, callback)`: - `'error'`: Network error occurred - `'connected'`: New peer connected - `'disconnected'`: Peer disconnected +- `'rtcerror'`: WebRTC error occurred (callback receives `RTCErrorEvent`) #### Lobby Events - `'lobby'`: Lobby created/joined diff --git a/example/main.ts b/example/main.ts index 59fd551..2642c1f 100644 --- a/example/main.ts +++ b/example/main.ts @@ -101,7 +101,7 @@ n.on('lobby', code => { }) n.on('signalingerror', console.error.bind(console.error)) -n.on('rtcerror', console.error.bind(console.error)) +n.on('rtcerror', (e: RTCErrorEvent) => console.error(e)) n.on('connecting', peer => { log(`peer connecting ${peer.id}`) }) n.on('disconnected', peer => { diff --git a/lib/network.ts b/lib/network.ts index 2e42157..5f81fdf 100644 --- a/lib/network.ts +++ b/lib/network.ts @@ -20,7 +20,7 @@ interface NetworkListeners { failed: () => void | Promise message: (peer: Peer, channel: string, data: string | Blob | ArrayBuffer | ArrayBufferView) => void | Promise close: (reason?: string) => void | Promise - rtcerror: (e: Event) => void | Promise // TODO: Figure out how to make this e type be RTCErrorEvent + rtcerror: (e: RTCErrorEvent) => void | Promise signalingerror: (e: SignalingError) => void | Promise } diff --git a/lib/peer.ts b/lib/peer.ts index 14da9a7..0db0e71 100644 --- a/lib/peer.ts +++ b/lib/peer.ts @@ -216,7 +216,7 @@ export default class Peer { } } - private onError (e: Event): void { + private onError (e: RTCErrorEvent): void { this.network.emit('rtcerror', e) if (this.network.listenerCount('rtcerror') === 0) { console.error('rtcerror not handled:', e)