From a94aa78389939709b974ed8364e9fce4000e5605 Mon Sep 17 00:00:00 2001 From: Anthony Barone Date: Tue, 2 Dec 2025 19:08:40 +0000 Subject: [PATCH 1/3] Add jsdoc to angular FirebaseErrorHandler telemetry API --- packages/telemetry/src/angular/index.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/telemetry/src/angular/index.ts b/packages/telemetry/src/angular/index.ts index a761f46df9..4826902db4 100644 --- a/packages/telemetry/src/angular/index.ts +++ b/packages/telemetry/src/angular/index.ts @@ -28,6 +28,30 @@ registerTelemetry(); export * from '../public-types'; +/** + * A custom ErrorHandler that captures uncaught errors and sends them to Firebase Telemetry. + * + * This should be provided in your application's root module. + * + * @example + * ```typescript + * import { ErrorHandler } from '@angular/core'; + * import { FirebaseErrorHandler } from '@firebase/telemetry-angular'; + * + * @NgModule({ + * // ... + * providers: [ + * { provide: ErrorHandler, useClass: FirebaseErrorHandler } + * ], + * // ... + * }) + * export class AppModule { } + * ``` + * + * @param telemetryOptions - {@link TelemetryOptions} that configure the Telemetry instance. + * + * @public + */ export class FirebaseErrorHandler implements ErrorHandler { private readonly router = inject(Router); From c4b6fff5c0f24e5486750d4a415e5466e1016c1e Mon Sep 17 00:00:00 2001 From: Anthony Barone Date: Tue, 2 Dec 2025 19:12:21 +0000 Subject: [PATCH 2/3] Add another example to block --- packages/telemetry/src/angular/index.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/packages/telemetry/src/angular/index.ts b/packages/telemetry/src/angular/index.ts index 4826902db4..38a8027763 100644 --- a/packages/telemetry/src/angular/index.ts +++ b/packages/telemetry/src/angular/index.ts @@ -34,6 +34,7 @@ export * from '../public-types'; * This should be provided in your application's root module. * * @example + * Basic usage: * ```typescript * import { ErrorHandler } from '@angular/core'; * import { FirebaseErrorHandler } from '@firebase/telemetry-angular'; @@ -48,7 +49,27 @@ export * from '../public-types'; * export class AppModule { } * ``` * - * @param telemetryOptions - {@link TelemetryOptions} that configure the Telemetry instance. + * @example + * Providing telemetry options: + * ```typescript + * import { ErrorHandler } from '@angular/core'; + * import { FirebaseErrorHandler } from '@firebase/telemetry-angular'; + * + * @NgModule({ + * // ... + * providers: [ + * { + * provide: ErrorHandler, + * useFactory: () => new FirebaseErrorHandler({ appVersion: '1.2.3' }) + * } + * ], + * // ... + * }) + * export class AppModule { } + * ``` + * + * @param telemetryOptions - Optional. {@link TelemetryOptions} that configure the Telemetry instance. + * To provide these options, you must use a `useFactory` provider as shown in the example above. * * @public */ From d49c8c22b01fcf3fd8cdd06c4a1404c81c3da78c Mon Sep 17 00:00:00 2001 From: Anthony Barone Date: Tue, 2 Dec 2025 19:22:22 +0000 Subject: [PATCH 3/3] Add generated doc files --- common/api-review/telemetry-angular.api.md | 2 +- .../telemetry_angular.firebaseerrorhandler.md | 45 +++++++++++++++++++ docs-devsite/telemetry_angular.md | 2 +- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/common/api-review/telemetry-angular.api.md b/common/api-review/telemetry-angular.api.md index 05ddf91ccd..c3ca0aa2ea 100644 --- a/common/api-review/telemetry-angular.api.md +++ b/common/api-review/telemetry-angular.api.md @@ -8,7 +8,7 @@ import { ErrorHandler } from '@angular/core'; import { FirebaseApp } from '@firebase/app'; import { LoggerProvider } from '@opentelemetry/sdk-logs'; -// @public (undocumented) +// @public export class FirebaseErrorHandler implements ErrorHandler { constructor(telemetryOptions?: TelemetryOptions | undefined); // (undocumented) diff --git a/docs-devsite/telemetry_angular.firebaseerrorhandler.md b/docs-devsite/telemetry_angular.firebaseerrorhandler.md index 11a115d969..7fbed3d7cf 100644 --- a/docs-devsite/telemetry_angular.firebaseerrorhandler.md +++ b/docs-devsite/telemetry_angular.firebaseerrorhandler.md @@ -10,6 +10,10 @@ https://github.com/firebase/firebase-js-sdk {% endcomment %} # FirebaseErrorHandler class +A custom ErrorHandler that captures uncaught errors and sends them to Firebase Telemetry. + +This should be provided in your application's root module. + Signature: ```typescript @@ -63,3 +67,44 @@ handleError(error: unknown): void; void +### Example 1 + +Basic usage: + +```typescript +import { ErrorHandler } from '@angular/core'; +import { FirebaseErrorHandler } from '@firebase/telemetry-angular'; + +@NgModule({ + // ... + providers: [ + { provide: ErrorHandler, useClass: FirebaseErrorHandler } + ], + // ... +}) +export class AppModule { } + +``` + +### Example 2 + +Providing telemetry options: + +```typescript +import { ErrorHandler } from '@angular/core'; +import { FirebaseErrorHandler } from '@firebase/telemetry-angular'; + +@NgModule({ + // ... + providers: [ + { + provide: ErrorHandler, + useFactory: () => new FirebaseErrorHandler({ appVersion: '1.2.3' }) + } + ], + // ... +}) +export class AppModule { } + +``` + diff --git a/docs-devsite/telemetry_angular.md b/docs-devsite/telemetry_angular.md index bb341d2eb2..c868ee3abe 100644 --- a/docs-devsite/telemetry_angular.md +++ b/docs-devsite/telemetry_angular.md @@ -15,7 +15,7 @@ https://github.com/firebase/firebase-js-sdk | Class | Description | | --- | --- | -| [FirebaseErrorHandler](./telemetry_angular.firebaseerrorhandler.md#firebaseerrorhandler_class) | | +| [FirebaseErrorHandler](./telemetry_angular.firebaseerrorhandler.md#firebaseerrorhandler_class) | A custom ErrorHandler that captures uncaught errors and sends them to Firebase Telemetry.This should be provided in your application's root module. | ## Interfaces