@@ -7,7 +7,8 @@ import { UserTelemetryService } from './user-telemetry.service';
77
88@Injectable ( { providedIn : 'root' } )
99export class UserTelemetryImplService extends UserTelemetryService {
10- private telemetryProviders : UserTelemetryInternalConfig [ ] = [ ] ;
10+ private allTelemetryProviders : UserTelemetryInternalConfig [ ] = [ ] ;
11+ private initializedTelemetryProviders : UserTelemetryInternalConfig [ ] = [ ] ;
1112
1213 public constructor ( private readonly injector : Injector , @Optional ( ) private readonly router ?: Router ) {
1314 super ( ) ;
@@ -17,7 +18,7 @@ export class UserTelemetryImplService extends UserTelemetryService {
1718 public register ( ...configs : UserTelemetryRegistrationConfig < unknown > [ ] ) : void {
1819 try {
1920 const providers = configs . map ( config => this . buildTelemetryProvider ( config ) ) ;
20- this . telemetryProviders = [ ...this . telemetryProviders , ...providers ] ;
21+ this . allTelemetryProviders = [ ...this . allTelemetryProviders , ...providers ] ;
2122 } catch ( error ) {
2223 /**
2324 * Fail silently
@@ -29,31 +30,33 @@ export class UserTelemetryImplService extends UserTelemetryService {
2930 }
3031
3132 public initialize ( ) : void {
32- this . telemetryProviders . forEach ( provider => provider . telemetryProvider . initialize ( provider . initConfig ) ) ;
33+ this . allTelemetryProviders . forEach ( provider => provider . telemetryProvider . initialize ( provider . initConfig ) ) ;
34+ this . initializedTelemetryProviders = [ ...this . allTelemetryProviders ] ;
3335 }
3436
3537 public identify ( userTraits : UserTraits ) : void {
36- this . telemetryProviders . forEach ( provider => provider . telemetryProvider . identify ( userTraits ) ) ;
38+ this . initializedTelemetryProviders . forEach ( provider => provider . telemetryProvider . identify ( userTraits ) ) ;
3739 }
3840
3941 public shutdown ( ) : void {
40- this . telemetryProviders . forEach ( provider => provider . telemetryProvider . shutdown ?.( ) ) ;
42+ this . initializedTelemetryProviders . forEach ( provider => provider . telemetryProvider . shutdown ?.( ) ) ;
43+ this . initializedTelemetryProviders = [ ] ;
4144 }
4245
4346 public trackEvent ( name : string , data : Dictionary < unknown > ) : void {
44- this . telemetryProviders
47+ this . initializedTelemetryProviders
4548 . filter ( provider => provider . enableEventTracking )
4649 . forEach ( provider => provider . telemetryProvider . trackEvent ?.( name , data ) ) ;
4750 }
4851
4952 public trackPageEvent ( url : string , data : Dictionary < unknown > ) : void {
50- this . telemetryProviders
53+ this . initializedTelemetryProviders
5154 . filter ( provider => provider . enablePageTracking )
5255 . forEach ( provider => provider . telemetryProvider . trackPage ?.( url , data ) ) ;
5356 }
5457
5558 public trackErrorEvent ( error : string , data : Dictionary < unknown > ) : void {
56- this . telemetryProviders
59+ this . initializedTelemetryProviders
5760 . filter ( provider => provider . enableErrorTracking )
5861 . forEach ( provider => provider . telemetryProvider . trackError ?.( `Error: ${ error } ` , data ) ) ;
5962 }
0 commit comments