Merge pull request #678 from OrkhanAlikhanov/master

openvidu-browser: improve typings for session event dispatcher methods
pull/681/head
Pablo Fuente Pérez 2022-01-10 11:36:06 +01:00 committed by GitHub
commit 358fb1af3a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 22 additions and 3 deletions

View File

@ -57,6 +57,25 @@ const logger: OpenViduLogger = OpenViduLogger.getInstance();
*/ */
let platform: PlatformUtils; let platform: PlatformUtils;
export interface SessionEventMap {
connectionCreated: ConnectionEvent
connectionDestroyed: ConnectionEvent
connectionPropertyChanged: ConnectionPropertyChangedEvent
sessionDisconnected: SessionDisconnectedEvent
streamCreated: StreamEvent
streamDestroyed: StreamEvent
streamPropertyChanged: StreamPropertyChangedEvent
publisherStartSpeaking: PublisherSpeakingEvent
publisherStopSpeaking: PublisherSpeakingEvent
signal: SignalEvent
recordingStarted: RecordingEvent
recordingStopped: RecordingEvent
networkQualityLevelChanged: NetworkQualityLevelChangedEvent
reconnecting: never
reconnected: never
exception: ExceptionEvent
}
/** /**
* Represents a video call. It can also be seen as a videoconference room where multiple users can connect. * Represents a video call. It can also be seen as a videoconference room where multiple users can connect.
* Participants who publish their videos to a session can be seen by the rest of users connected to that specific session. * Participants who publish their videos to a session can be seen by the rest of users connected to that specific session.
@ -640,7 +659,7 @@ export class Session extends EventDispatcher {
/** /**
* See [[EventDispatcher.on]] * See [[EventDispatcher.on]]
*/ */
on(type: string, handler: (event: SessionDisconnectedEvent | SignalEvent | StreamEvent | ConnectionEvent | PublisherSpeakingEvent | RecordingEvent | NetworkQualityLevelChangedEvent | ExceptionEvent) => void): EventDispatcher { on<K extends keyof SessionEventMap>(type: K, handler: (event: SessionEventMap[K]) => void): this {
super.onAux(type, "Event '" + type + "' triggered by 'Session'", handler); super.onAux(type, "Event '" + type + "' triggered by 'Session'", handler);
@ -676,7 +695,7 @@ export class Session extends EventDispatcher {
/** /**
* See [[EventDispatcher.once]] * See [[EventDispatcher.once]]
*/ */
once(type: string, handler: (event: SessionDisconnectedEvent | SignalEvent | StreamEvent | ConnectionEvent | PublisherSpeakingEvent | RecordingEvent | NetworkQualityLevelChangedEvent | ExceptionEvent) => void): Session { once<K extends keyof SessionEventMap>(type: K, handler: (event: SessionEventMap[K]) => void): this {
super.onceAux(type, "Event '" + type + "' triggered once by 'Session'", handler); super.onceAux(type, "Event '" + type + "' triggered once by 'Session'", handler);
@ -712,7 +731,7 @@ export class Session extends EventDispatcher {
/** /**
* See [[EventDispatcher.off]] * See [[EventDispatcher.off]]
*/ */
off(type: string, handler?: (event: SessionDisconnectedEvent | SignalEvent | StreamEvent | ConnectionEvent | PublisherSpeakingEvent | RecordingEvent | NetworkQualityLevelChangedEvent | ExceptionEvent) => void): Session { off<K extends keyof SessionEventMap>(type: K, handler: (event: SessionEventMap[K]) => void): this {
super.off(type, handler); super.off(type, handler);