@@ -10,22 +10,20 @@ import {assertNotNullOrUndefined} from '../platform/platform.js';
1010import type * as ProtocolClient from '../protocol_client/protocol_client.js' ;
1111import * as Root from '../root/root.js' ;
1212
13- import { SDKModel } from './SDKModel.js' ;
13+ import { SDKModel , type SDKModelConstructor } from './SDKModel.js' ;
1414import { Target , Type as TargetType } from './Target.js' ;
1515
16- type ModelClass < T = SDKModel > = new ( arg1 : Target ) => T ;
17-
1816export class TargetManager extends Common . ObjectWrapper . ObjectWrapper < EventTypes > {
1917 #targets: Set < Target > ;
2018 readonly #observers: Set < Observer > ;
2119 /* eslint-disable @typescript-eslint/no-explicit-any */
2220 #modelListeners: Platform . MapUtilities . Multimap < string | symbol | number , {
23- modelClass : ModelClass ,
21+ modelClass : SDKModelConstructor ,
2422 thisObject : Object | undefined ,
2523 listener : Common . EventTarget . EventListener < any , any > ,
2624 wrappedListener : Common . EventTarget . EventListener < any , any > ,
2725 } > ;
28- readonly #modelObservers: Platform . MapUtilities . Multimap < ModelClass , SDKModelObserver < any > > ;
26+ readonly #modelObservers: Platform . MapUtilities . Multimap < SDKModelConstructor , SDKModelObserver < any > > ;
2927 #scopedObservers: WeakSet < Observer | SDKModelObserver < any > > ;
3028 /* eslint-enable @typescript-eslint/no-explicit-any */
3129 #isSuspended: boolean ;
@@ -99,7 +97,7 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
9997 return this . #isSuspended;
10098 }
10199
102- models < T extends SDKModel > ( modelClass : ModelClass < T > , opts ?: { scoped : boolean } ) : T [ ] {
100+ models < T extends SDKModel > ( modelClass : SDKModelConstructor < T > , opts ?: { scoped : boolean } ) : T [ ] {
103101 const result = [ ] ;
104102 for ( const target of this . #targets) {
105103 if ( opts ?. scoped && ! this . isInScope ( target ) ) {
@@ -119,8 +117,9 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
119117 return mainTarget ? mainTarget . inspectedURL ( ) : '' ;
120118 }
121119
122- observeModels < T extends SDKModel > ( modelClass : ModelClass < T > , observer : SDKModelObserver < T > , opts ?: { scoped : boolean } ) :
123- void {
120+ observeModels < T extends SDKModel > ( modelClass : SDKModelConstructor < T > , observer : SDKModelObserver < T > , opts ?: {
121+ scoped : boolean ,
122+ } ) : void {
124123 const models = this . models ( modelClass , opts ) ;
125124 this . #modelObservers. set ( modelClass , observer ) ;
126125 if ( opts ?. scoped ) {
@@ -131,20 +130,20 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
131130 }
132131 }
133132
134- unobserveModels < T extends SDKModel > ( modelClass : ModelClass < T > , observer : SDKModelObserver < T > ) : void {
133+ unobserveModels < T extends SDKModel > ( modelClass : SDKModelConstructor < T > , observer : SDKModelObserver < T > ) : void {
135134 this . #modelObservers. delete ( modelClass , observer ) ;
136135 this . #scopedObservers. delete ( observer ) ;
137136 }
138137
139- modelAdded ( modelClass : ModelClass , model : SDKModel , inScope : boolean ) : void {
138+ modelAdded ( modelClass : SDKModelConstructor , model : SDKModel , inScope : boolean ) : void {
140139 for ( const observer of this . #modelObservers. get ( modelClass ) . values ( ) ) {
141140 if ( ! this . #scopedObservers. has ( observer ) || inScope ) {
142141 observer . modelAdded ( model ) ;
143142 }
144143 }
145144 }
146145
147- private modelRemoved ( modelClass : ModelClass , model : SDKModel , inScope : boolean ) : void {
146+ private modelRemoved ( modelClass : SDKModelConstructor , model : SDKModel , inScope : boolean ) : void {
148147 for ( const observer of this . #modelObservers. get ( modelClass ) . values ( ) ) {
149148 if ( ! this . #scopedObservers. has ( observer ) || inScope ) {
150149 observer . modelRemoved ( model ) ;
@@ -153,8 +152,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
153152 }
154153
155154 addModelListener < Events , T extends keyof Events > (
156- modelClass : ModelClass < SDKModel < Events > > , eventType : T , listener : Common . EventTarget . EventListener < Events , T > ,
157- thisObject ?: Object , opts ?: { scoped : boolean } ) : void {
155+ modelClass : SDKModelConstructor < SDKModel < Events > > , eventType : T ,
156+ listener : Common . EventTarget . EventListener < Events , T > , thisObject ?: Object , opts ?: { scoped : boolean } ) : void {
158157 const wrappedListener = ( event : Common . EventTarget . EventTargetEvent < Events [ T ] , Events > ) : void => {
159158 if ( ! opts ?. scoped || this . isInScope ( event ) ) {
160159 listener . call ( thisObject , event ) ;
@@ -167,8 +166,8 @@ export class TargetManager extends Common.ObjectWrapper.ObjectWrapper<EventTypes
167166 }
168167
169168 removeModelListener < Events , T extends keyof Events > (
170- modelClass : ModelClass < SDKModel < Events > > , eventType : T , listener : Common . EventTarget . EventListener < Events , T > ,
171- thisObject ?: Object ) : void {
169+ modelClass : SDKModelConstructor < SDKModel < Events > > , eventType : T ,
170+ listener : Common . EventTarget . EventListener < Events , T > , thisObject ?: Object ) : void {
172171 if ( ! this . #modelListeners. has ( eventType ) ) {
173172 return ;
174173 }
0 commit comments