Skip to content

Commit eba40e3

Browse files
authored
Update FirebaseErrorHandler angular class to take app (#9407)
1 parent 45e28bd commit eba40e3

File tree

4 files changed

+22
-11
lines changed

4 files changed

+22
-11
lines changed

common/api-review/telemetry-angular.api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { LoggerProvider } from '@opentelemetry/sdk-logs';
1010

1111
// @public
1212
export class FirebaseErrorHandler implements ErrorHandler {
13-
constructor(telemetryOptions?: TelemetryOptions | undefined);
13+
constructor(app: FirebaseApp, telemetryOptions?: TelemetryOptions | undefined);
1414
// (undocumented)
1515
handleError(error: unknown): void;
1616
}

docs-devsite/telemetry_angular.firebaseerrorhandler.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export declare class FirebaseErrorHandler implements ErrorHandler
2525
2626
| Constructor | Modifiers | Description |
2727
| --- | --- | --- |
28-
| [(constructor)(telemetryOptions)](./telemetry_angular.firebaseerrorhandler.md#firebaseerrorhandlerconstructor) | | Constructs a new instance of the <code>FirebaseErrorHandler</code> class |
28+
| [(constructor)(app, telemetryOptions)](./telemetry_angular.firebaseerrorhandler.md#firebaseerrorhandlerconstructor) | | Constructs a new instance of the <code>FirebaseErrorHandler</code> class |
2929
3030
## Methods
3131
@@ -40,13 +40,14 @@ Constructs a new instance of the `FirebaseErrorHandler` class
4040
<b>Signature:</b>
4141
4242
```typescript
43-
constructor(telemetryOptions?: TelemetryOptions | undefined);
43+
constructor(app: FirebaseApp, telemetryOptions?: TelemetryOptions | undefined);
4444
```
4545
4646
#### Parameters
4747
4848
| Parameter | Type | Description |
4949
| --- | --- | --- |
50+
| app | [FirebaseApp](./app.firebaseapp.md#firebaseapp_interface) | |
5051
| telemetryOptions | [TelemetryOptions](./telemetry_.telemetryoptions.md#telemetryoptions_interface) \| undefined | |
5152
5253
## FirebaseErrorHandler.handleError()
@@ -78,7 +79,10 @@ import { FirebaseErrorHandler } from '@firebase/telemetry-angular';
7879
@NgModule({
7980
// ...
8081
providers: [
81-
{ provide: ErrorHandler, useClass: FirebaseErrorHandler }
82+
{
83+
provide: ErrorHandler,
84+
useFactory: () => new FirebaseErrorHandler(firebaseApp)
85+
}
8286
],
8387
// ...
8488
})
@@ -99,7 +103,7 @@ import { FirebaseErrorHandler } from '@firebase/telemetry-angular';
99103
providers: [
100104
{
101105
provide: ErrorHandler,
102-
useFactory: () => new FirebaseErrorHandler({ appVersion: '1.2.3' })
106+
useFactory: () => new FirebaseErrorHandler(firebaseApp, { appVersion: '1.2.3' })
103107
}
104108
],
105109
// ...

packages/telemetry/src/angular/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ describe('FirebaseErrorHandler', () => {
7575
const testInjector = TestBed.inject(Injector);
7676
errorHandler = runInInjectionContext(
7777
testInjector,
78-
() => new FirebaseErrorHandler()
78+
() => new FirebaseErrorHandler(app)
7979
);
8080
router = TestBed.inject(Router);
8181
});

packages/telemetry/src/angular/index.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { ActivatedRouteSnapshot, Router } from '@angular/router';
2222
import { registerTelemetry } from '../register';
2323
import { captureError, getTelemetry } from '../api';
2424
import { TelemetryOptions } from '../public-types';
25-
import { getApp } from '@firebase/app';
25+
import { FirebaseApp } from '@firebase/app';
2626

2727
registerTelemetry();
2828

@@ -42,7 +42,10 @@ export * from '../public-types';
4242
* @NgModule({
4343
* // ...
4444
* providers: [
45-
* { provide: ErrorHandler, useClass: FirebaseErrorHandler }
45+
* {
46+
* provide: ErrorHandler,
47+
* useFactory: () => new FirebaseErrorHandler(firebaseApp)
48+
* }
4649
* ],
4750
* // ...
4851
* })
@@ -60,14 +63,15 @@ export * from '../public-types';
6063
* providers: [
6164
* {
6265
* provide: ErrorHandler,
63-
* useFactory: () => new FirebaseErrorHandler({ appVersion: '1.2.3' })
66+
* useFactory: () => new FirebaseErrorHandler(firebaseApp, { appVersion: '1.2.3' })
6467
* }
6568
* ],
6669
* // ...
6770
* })
6871
* export class AppModule { }
6972
* ```
7073
*
74+
* @param firebaseApp - The {@link @firebase/app#FirebaseApp} instance to use.
7175
* @param telemetryOptions - Optional. {@link TelemetryOptions} that configure the Telemetry instance.
7276
* To provide these options, you must use a `useFactory` provider as shown in the example above.
7377
*
@@ -76,10 +80,13 @@ export * from '../public-types';
7680
export class FirebaseErrorHandler implements ErrorHandler {
7781
private readonly router = inject(Router);
7882

79-
constructor(private telemetryOptions?: TelemetryOptions) {}
83+
constructor(
84+
private app: FirebaseApp,
85+
private telemetryOptions?: TelemetryOptions
86+
) {}
8087

8188
handleError(error: unknown): void {
82-
const telemetry = getTelemetry(getApp(), this.telemetryOptions);
89+
const telemetry = getTelemetry(this.app, this.telemetryOptions);
8390

8491
const attributes = {
8592
'angular_route_path': this.getSafeRoutePath(this.router)

0 commit comments

Comments
 (0)