1515 */
1616
1717import { EventEmitter } from "events" ;
18+
1819import { ITransport } from "./transport/ITransport" ;
1920import { Widget } from "./models/Widget" ;
2021import { PostmessageTransport } from "./transport/PostmessageTransport" ;
@@ -213,12 +214,12 @@ export class ClientWidgetApi extends EventEmitter {
213214 return this . allowedEvents . some ( e => e . matchesAsRoomAccountData ( EventDirection . Receive , eventType ) ) ;
214215 }
215216
216- public stop ( ) {
217+ public stop ( ) : void {
217218 this . isStopped = true ;
218219 this . transport . stop ( ) ;
219220 }
220221
221- private beginCapabilities ( ) {
222+ private beginCapabilities ( ) : void {
222223 // widget has loaded - tell all the listeners that
223224 this . emit ( "preparing" ) ;
224225
@@ -239,18 +240,18 @@ export class ClientWidgetApi extends EventEmitter {
239240 } ) ;
240241 }
241242
242- private notifyCapabilities ( requested : Capability [ ] ) {
243+ private notifyCapabilities ( requested : Capability [ ] ) : void {
243244 this . transport . send ( WidgetApiToWidgetAction . NotifyCapabilities , < INotifyCapabilitiesActionRequestData > {
244245 requested : requested ,
245246 approved : Array . from ( this . allowedCapabilities ) ,
246247 } ) . catch ( e => {
247248 console . warn ( "non-fatal error notifying widget of approved capabilities:" , e ) ;
248249 } ) . then ( ( ) => {
249- this . emit ( "capabilitiesNotified" )
250+ this . emit ( "capabilitiesNotified" ) ;
250251 } ) ;
251252 }
252253
253- private onIframeLoad ( ev : Event ) {
254+ private onIframeLoad ( ev : Event ) : void {
254255 if ( this . widget . waitForIframeLoad ) {
255256 // If the widget is set to waitForIframeLoad the capabilities immediatly get setup after load.
256257 // The client does not wait for the ContentLoaded action.
@@ -268,7 +269,7 @@ export class ClientWidgetApi extends EventEmitter {
268269 }
269270 }
270271
271- private handleContentLoadedAction ( action : IContentLoadedActionRequest ) {
272+ private handleContentLoadedAction ( action : IContentLoadedActionRequest ) : void {
272273 if ( this . contentLoadedWaitTimer !== undefined ) {
273274 clearTimeout ( this . contentLoadedWaitTimer ) ;
274275 this . contentLoadedWaitTimer = undefined ;
@@ -291,13 +292,13 @@ export class ClientWidgetApi extends EventEmitter {
291292 this . contentLoadedActionSent = true ;
292293 }
293294
294- private replyVersions ( request : ISupportedVersionsActionRequest ) {
295+ private replyVersions ( request : ISupportedVersionsActionRequest ) : void {
295296 this . transport . reply < ISupportedVersionsActionResponseData > ( request , {
296297 supported_versions : CurrentApiVersions ,
297298 } ) ;
298299 }
299300
300- private handleCapabilitiesRenegotiate ( request : IRenegotiateCapabilitiesActionRequest ) {
301+ private handleCapabilitiesRenegotiate ( request : IRenegotiateCapabilitiesActionRequest ) : void {
301302 // acknowledge first
302303 this . transport . reply < IWidgetApiAcknowledgeResponseData > ( request , { } ) ;
303304
@@ -318,7 +319,7 @@ export class ClientWidgetApi extends EventEmitter {
318319 } ) ;
319320 }
320321
321- private handleNavigate ( request : INavigateActionRequest ) {
322+ private handleNavigate ( request : INavigateActionRequest ) : void {
322323 if ( ! this . hasCapability ( MatrixCapabilities . MSC2931Navigate ) ) {
323324 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
324325 error : { message : "Missing capability" } ,
@@ -331,7 +332,7 @@ export class ClientWidgetApi extends EventEmitter {
331332 } ) ;
332333 }
333334
334- const onErr = ( e : unknown ) => {
335+ const onErr = ( e : unknown ) : void => {
335336 console . error ( "[ClientWidgetApi] Failed to handle navigation: " , e ) ;
336337 this . handleDriverError ( e , request , "Error handling navigation" ) ;
337338 } ;
@@ -345,10 +346,10 @@ export class ClientWidgetApi extends EventEmitter {
345346 }
346347 }
347348
348- private handleOIDC ( request : IGetOpenIDActionRequest ) {
349+ private handleOIDC ( request : IGetOpenIDActionRequest ) : void {
349350 let phase = 1 ; // 1 = initial request, 2 = after user manual confirmation
350351
351- const replyState = ( state : OpenIDRequestState , credential ?: IOpenIDCredentials ) => {
352+ const replyState = ( state : OpenIDRequestState , credential ?: IOpenIDCredentials ) : void | Promise < IWidgetApiAcknowledgeResponseData > => {
352353 credential = credential || { } ;
353354 if ( phase > 1 ) {
354355 return this . transport . send < IOpenIDCredentialsActionRequestData > (
@@ -367,7 +368,7 @@ export class ClientWidgetApi extends EventEmitter {
367368 }
368369 } ;
369370
370- const replyError = ( msg : string ) => {
371+ const replyError = ( msg : string ) : void | Promise < IWidgetApiAcknowledgeResponseData > => {
371372 console . error ( "[ClientWidgetApi] Failed to handle OIDC: " , msg ) ;
372373 if ( phase > 1 ) {
373374 // We don't have a way to indicate that a random error happened in this flow, so
@@ -405,7 +406,7 @@ export class ClientWidgetApi extends EventEmitter {
405406
406407 this . driver . askOpenID ( observer ) ;
407408 }
408- private handleReadRoomAccountData ( request : IReadRoomAccountDataFromWidgetActionRequest ) {
409+ private handleReadRoomAccountData ( request : IReadRoomAccountDataFromWidgetActionRequest ) : void | Promise < void > {
409410 let events : Promise < IRoomAccountData [ ] > = Promise . resolve ( [ ] ) ;
410411 events = this . driver . readRoomAccountData ( request . data . type ) ;
411412
@@ -416,11 +417,11 @@ export class ClientWidgetApi extends EventEmitter {
416417 }
417418
418419 return events . then ( ( evs ) => {
419- this . transport . reply < IReadRoomAccountDataFromWidgetResponseData > ( request , { events : evs } )
420+ this . transport . reply < IReadRoomAccountDataFromWidgetResponseData > ( request , { events : evs } ) ;
420421 } ) ;
421422 }
422423
423- private handleReadEvents ( request : IReadEventFromWidgetActionRequest ) {
424+ private handleReadEvents ( request : IReadEventFromWidgetActionRequest ) : void | Promise < void > {
424425 if ( ! request . data . type ) {
425426 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
426427 error : { message : "Invalid request - missing event type" } ,
@@ -434,9 +435,10 @@ export class ClientWidgetApi extends EventEmitter {
434435
435436 let askRoomIds : string [ ] | null = null ; // null denotes current room only
436437 if ( request . data . room_ids ) {
437- askRoomIds = request . data . room_ids as string [ ] ;
438- if ( ! Array . isArray ( askRoomIds ) ) {
439- askRoomIds = [ askRoomIds as any as string ] ;
438+ if ( Array . isArray ( request . data . room_ids ) ) {
439+ askRoomIds = request . data . room_ids ;
440+ } else {
441+ askRoomIds = [ request . data . room_ids ] ;
440442 }
441443 for ( const roomId of askRoomIds ) {
442444 if ( ! this . canUseRoomTimeline ( roomId ) ) {
@@ -471,7 +473,7 @@ export class ClientWidgetApi extends EventEmitter {
471473 return events . then ( evs => this . transport . reply < IReadEventFromWidgetResponseData > ( request , { events : evs } ) ) ;
472474 }
473475
474- private handleSendEvent ( request : ISendEventFromWidgetActionRequest ) {
476+ private handleSendEvent ( request : ISendEventFromWidgetActionRequest ) : void {
475477 if ( ! request . data . type ) {
476478 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
477479 error : { message : "Invalid request - missing event type" } ,
@@ -559,7 +561,7 @@ export class ClientWidgetApi extends EventEmitter {
559561 } ) ;
560562 }
561563
562- private handleUpdateDelayedEvent ( request : IUpdateDelayedEventFromWidgetActionRequest ) {
564+ private handleUpdateDelayedEvent ( request : IUpdateDelayedEventFromWidgetActionRequest ) : void {
563565 if ( ! request . data . delay_id ) {
564566 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
565567 error : { message : "Invalid request - missing delay_id" } ,
@@ -618,7 +620,7 @@ export class ClientWidgetApi extends EventEmitter {
618620 }
619621 }
620622
621- private async pollTurnServers ( turnServers : AsyncGenerator < ITurnServer > , initialServer : ITurnServer ) {
623+ private async pollTurnServers ( turnServers : AsyncGenerator < ITurnServer > , initialServer : ITurnServer ) : Promise < void > {
622624 try {
623625 await this . transport . send < IUpdateTurnServersRequestData > (
624626 WidgetApiToWidgetAction . UpdateTurnServers ,
@@ -683,7 +685,7 @@ export class ClientWidgetApi extends EventEmitter {
683685 }
684686 }
685687
686- private async handleReadRelations ( request : IReadRelationsFromWidgetActionRequest ) {
688+ private async handleReadRelations ( request : IReadRelationsFromWidgetActionRequest ) : Promise < void > {
687689 if ( ! request . data . event_id ) {
688690 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
689691 error : { message : "Invalid request - missing event ID" } ,
@@ -732,7 +734,7 @@ export class ClientWidgetApi extends EventEmitter {
732734 }
733735 }
734736
735- private async handleUserDirectorySearch ( request : IUserDirectorySearchFromWidgetActionRequest ) {
737+ private async handleUserDirectorySearch ( request : IUserDirectorySearchFromWidgetActionRequest ) : Promise < void > {
736738 if ( ! this . hasCapability ( MatrixCapabilities . MSC3973UserDirectorySearch ) ) {
737739 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
738740 error : { message : "Missing capability" } ,
@@ -773,15 +775,15 @@ export class ClientWidgetApi extends EventEmitter {
773775 }
774776 }
775777
776- private async handleGetMediaConfig ( request : IGetMediaConfigActionFromWidgetActionRequest ) {
778+ private async handleGetMediaConfig ( request : IGetMediaConfigActionFromWidgetActionRequest ) : Promise < void > {
777779 if ( ! this . hasCapability ( MatrixCapabilities . MSC4039UploadFile ) ) {
778780 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
779781 error : { message : "Missing capability" } ,
780782 } ) ;
781783 }
782784
783785 try {
784- const result = await this . driver . getMediaConfig ( )
786+ const result = await this . driver . getMediaConfig ( ) ;
785787
786788 return this . transport . reply < IGetMediaConfigActionFromWidgetResponseData > (
787789 request ,
@@ -793,7 +795,7 @@ export class ClientWidgetApi extends EventEmitter {
793795 }
794796 }
795797
796- private async handleUploadFile ( request : IUploadFileActionFromWidgetActionRequest ) {
798+ private async handleUploadFile ( request : IUploadFileActionFromWidgetActionRequest ) : Promise < void > {
797799 if ( ! this . hasCapability ( MatrixCapabilities . MSC4039UploadFile ) ) {
798800 return this . transport . reply < IWidgetApiErrorResponseData > ( request , {
799801 error : { message : "Missing capability" } ,
@@ -833,7 +835,7 @@ export class ClientWidgetApi extends EventEmitter {
833835 }
834836 }
835837
836- private handleDriverError ( e : unknown , request : IWidgetApiRequest , message : string ) {
838+ private handleDriverError ( e : unknown , request : IWidgetApiRequest , message : string ) : void {
837839 const data = this . driver . processError ( e ) ;
838840 this . transport . reply < IWidgetApiErrorResponseData > ( request , {
839841 error : {
@@ -843,7 +845,7 @@ export class ClientWidgetApi extends EventEmitter {
843845 } ) ;
844846 }
845847
846- private handleMessage ( ev : CustomEvent < IWidgetApiRequest > ) {
848+ private handleMessage ( ev : CustomEvent < IWidgetApiRequest > ) : void | Promise < void > {
847849 if ( this . isStopped ) return ;
848850 const actionEv = new CustomEvent ( `action:${ ev . detail . action } ` , {
849851 detail : ev . detail ,
@@ -875,7 +877,7 @@ export class ClientWidgetApi extends EventEmitter {
875877 case WidgetApiFromWidgetAction . MSC3869ReadRelations :
876878 return this . handleReadRelations ( < IReadRelationsFromWidgetActionRequest > ev . detail ) ;
877879 case WidgetApiFromWidgetAction . MSC3973UserDirectorySearch :
878- return this . handleUserDirectorySearch ( < IUserDirectorySearchFromWidgetActionRequest > ev . detail )
880+ return this . handleUserDirectorySearch ( < IUserDirectorySearchFromWidgetActionRequest > ev . detail ) ;
879881 case WidgetApiFromWidgetAction . BeeperReadRoomAccountData :
880882 return this . handleReadRoomAccountData ( < IReadRoomAccountDataFromWidgetActionRequest > ev . detail ) ;
881883 case WidgetApiFromWidgetAction . MSC4039GetMediaConfigAction :
0 commit comments