Skip to content

Commit 4d071b5

Browse files
committed
Maked DynamicHeaderProvider an internal interface and addresses other comments on PR
1 parent cbb1b57 commit 4d071b5

File tree

13 files changed

+60
-140
lines changed

13 files changed

+60
-140
lines changed

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

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@ import { FirebaseApp } from '@firebase/app';
88
import { FirebaseOptions } from '@firebase/app';
99
import { LoggerProvider } from '@opentelemetry/sdk-logs';
1010

11-
// @public
12-
export interface DynamicHeaderProvider {
13-
getHeader(): Promise<Record<string, string> | null>;
14-
}
15-
1611
// @public
1712
export function FirebaseTelemetry({ firebaseOptions, telemetryOptions }: {
1813
firebaseOptions?: FirebaseOptions;

common/api-review/telemetry.api.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ import { LoggerProvider } from '@opentelemetry/sdk-logs';
1212
// @public
1313
export function captureError(telemetry: Telemetry, error: unknown, attributes?: AnyValueMap): void;
1414

15-
// @public
16-
export interface DynamicHeaderProvider {
17-
getHeader(): Promise<Record<string, string> | null>;
18-
}
19-
2015
// @public
2116
export function flush(telemetry: Telemetry): Promise<void>;
2217

docs-devsite/_toc.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -697,17 +697,13 @@ toc:
697697
- title: telemetry
698698
path: /docs/reference/js/telemetry_.md
699699
section:
700-
- title: DynamicHeaderProvider
701-
path: /docs/reference/js/telemetry_.dynamicheaderprovider.md
702700
- title: Telemetry
703701
path: /docs/reference/js/telemetry_.telemetry.md
704702
- title: TelemetryOptions
705703
path: /docs/reference/js/telemetry_.telemetryoptions.md
706704
- title: telemetry/react
707705
path: /docs/reference/js/telemetry_react.md
708706
section:
709-
- title: DynamicHeaderProvider
710-
path: /docs/reference/js/telemetry_react.dynamicheaderprovider.md
711707
- title: Telemetry
712708
path: /docs/reference/js/telemetry_react.telemetry.md
713709
- title: TelemetryOptions

docs-devsite/telemetry_.dynamicheaderprovider.md

Lines changed: 0 additions & 43 deletions
This file was deleted.

docs-devsite/telemetry_.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ https://github.com/firebase/firebase-js-sdk
2727

2828
| Interface | Description |
2929
| --- | --- |
30-
| [DynamicHeaderProvider](./telemetry_.dynamicheaderprovider.md#dynamicheaderprovider_interface) | An interface for classes that provide dynamic headers.<!-- -->Classes that implement this interface can be used to supply custom headers for logging. |
3130
| [Telemetry](./telemetry_.telemetry.md#telemetry_interface) | An instance of the Firebase Telemetry SDK.<!-- -->Do not create this instance directly. Instead, use [getTelemetry()](./telemetry_.md#gettelemetry_448bdc6)<!-- -->. |
3231
| [TelemetryOptions](./telemetry_.telemetryoptions.md#telemetryoptions_interface) | Options for initialized the Telemetry service using [getTelemetry()](./telemetry_.md#gettelemetry_448bdc6)<!-- -->. |
3332

docs-devsite/telemetry_react.dynamicheaderprovider.md

Lines changed: 0 additions & 43 deletions
This file was deleted.

docs-devsite/telemetry_react.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ https://github.com/firebase/firebase-js-sdk
2121

2222
| Interface | Description |
2323
| --- | --- |
24-
| [DynamicHeaderProvider](./telemetry_react.dynamicheaderprovider.md#dynamicheaderprovider_interface) | An interface for classes that provide dynamic headers.<!-- -->Classes that implement this interface can be used to supply custom headers for logging. |
2524
| [Telemetry](./telemetry_react.telemetry.md#telemetry_interface) | An instance of the Firebase Telemetry SDK.<!-- -->Do not create this instance directly. Instead, use [getTelemetry()](./telemetry_.md#gettelemetry_448bdc6)<!-- -->. |
2625
| [TelemetryOptions](./telemetry_react.telemetryoptions.md#telemetryoptions_interface) | Options for initialized the Telemetry service using [getTelemetry()](./telemetry_.md#gettelemetry_448bdc6)<!-- -->. |
2726

packages/telemetry/src/logging/appcheck-provider.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,18 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { DynamicHeaderProvider } from '../public-types';
18+
import { DynamicHeaderProvider } from '../types';
1919
import { Provider } from '@firebase/component';
2020
import {
2121
FirebaseAppCheckInternal,
2222
AppCheckInternalComponentName
2323
} from '@firebase/app-check-interop-types';
2424

25+
/**
26+
* An implementation of DynamicHeaderProvider that can be used to provide App Check token headers.
27+
*
28+
* @internal
29+
*/
2530
export class AppCheckProvider implements DynamicHeaderProvider {
2631
appCheck: FirebaseAppCheckInternal | null;
2732

@@ -41,11 +46,12 @@ export class AppCheckProvider implements DynamicHeaderProvider {
4146
}
4247

4348
const appCheckToken = await this.appCheck.getToken();
44-
// If the error field is defined, the token field will be populated with a dummy token
49+
// The error field must be checked as when there is an error, the token field is populated with
50+
// a dummy error.
4551
if (!appCheckToken || !!appCheckToken.error) {
4652
return null;
4753
}
4854

49-
return {'X-Firebase-AppCheck': appCheckToken.token};
55+
return { 'X-Firebase-AppCheck': appCheckToken.token };
5056
}
51-
}
57+
}

packages/telemetry/src/logging/fetch-transport.edge.test.ts renamed to packages/telemetry/src/logging/fetch-transport.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020

2121
import * as sinon from 'sinon';
2222
import * as assert from 'assert';
23-
import { DynamicHeaderProvider } from '../public-types';
24-
import { FetchTransportEdge } from './fetch-transport.edge';
23+
import { DynamicHeaderProvider } from '../types';
24+
import { FetchTransport } from './fetch-transport';
2525
import {
2626
ExportResponseRetryable,
2727
ExportResponseFailure,
@@ -40,7 +40,7 @@ const testTransportParameters = {
4040
const requestTimeout = 1000;
4141
const testPayload = Uint8Array.from([1, 2, 3]);
4242

43-
describe('FetchTransportEdge', () => {
43+
describe('FetchTransport', () => {
4444
afterEach(() => {
4545
sinon.restore();
4646
});
@@ -51,7 +51,7 @@ describe('FetchTransportEdge', () => {
5151
const fetchStub = sinon
5252
.stub(globalThis, 'fetch')
5353
.resolves(new Response('test response', { status: 200 }));
54-
const transport = new FetchTransportEdge(testTransportParameters);
54+
const transport = new FetchTransport(testTransportParameters);
5555

5656
//act
5757
transport.send(testPayload, requestTimeout).then(response => {
@@ -88,7 +88,7 @@ describe('FetchTransportEdge', () => {
8888
sinon
8989
.stub(globalThis, 'fetch')
9090
.resolves(new Response('', { status: 404 }));
91-
const transport = new FetchTransportEdge(testTransportParameters);
91+
const transport = new FetchTransport(testTransportParameters);
9292

9393
//act
9494
transport.send(testPayload, requestTimeout).then(response => {
@@ -109,7 +109,7 @@ describe('FetchTransportEdge', () => {
109109
.resolves(
110110
new Response('', { status: 503, headers: { 'Retry-After': '5' } })
111111
);
112-
const transport = new FetchTransportEdge(testTransportParameters);
112+
const transport = new FetchTransport(testTransportParameters);
113113

114114
//act
115115
transport.send(testPayload, requestTimeout).then(response => {
@@ -133,7 +133,7 @@ describe('FetchTransportEdge', () => {
133133
abortError.name = 'AbortError';
134134
sinon.stub(globalThis, 'fetch').rejects(abortError);
135135
const clock = sinon.useFakeTimers();
136-
const transport = new FetchTransportEdge(testTransportParameters);
136+
const transport = new FetchTransport(testTransportParameters);
137137

138138
//act
139139
transport.send(testPayload, requestTimeout).then(response => {
@@ -156,7 +156,7 @@ describe('FetchTransportEdge', () => {
156156
// arrange
157157
sinon.stub(globalThis, 'fetch').throws(new Error('fetch failed'));
158158
const clock = sinon.useFakeTimers();
159-
const transport = new FetchTransportEdge(testTransportParameters);
159+
const transport = new FetchTransport(testTransportParameters);
160160

161161
//act
162162
transport.send(testPayload, requestTimeout).then(response => {
@@ -185,7 +185,7 @@ describe('FetchTransportEdge', () => {
185185
getHeader: sinon.stub().resolves({ 'dynamic-header': 'dynamic-value' })
186186
};
187187

188-
const transport = new FetchTransportEdge({
188+
const transport = new FetchTransport({
189189
...testTransportParameters,
190190
dynamicHeaders: [dynamicProvider]
191191
});
@@ -226,7 +226,7 @@ describe('FetchTransportEdge', () => {
226226
getHeader: sinon.stub().resolves(null)
227227
};
228228

229-
const transport = new FetchTransportEdge({
229+
const transport = new FetchTransport({
230230
...testTransportParameters,
231231
dynamicHeaders: [dynamicProvider]
232232
});

packages/telemetry/src/logging/fetch-transport.edge.ts renamed to packages/telemetry/src/logging/fetch-transport.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
ExportResponse
2424
} from '@opentelemetry/otlp-exporter-base';
2525
import { diag } from '@opentelemetry/api';
26-
import { DynamicHeaderProvider } from '../public-types';
26+
import { DynamicHeaderProvider } from '../types';
2727

2828
function isExportRetryable(statusCode: number): boolean {
2929
const retryCodes = [429, 502, 503, 504];
@@ -58,11 +58,11 @@ export interface FetchTransportParameters {
5858
}
5959

6060
/**
61-
* An implementation of IExporterTransport that can be used in the Edge Runtime.
61+
* An implementation of IExporterTransport.
6262
*
6363
* @internal
6464
*/
65-
export class FetchTransportEdge implements IExporterTransport {
65+
export class FetchTransport implements IExporterTransport {
6666
constructor(private parameters: FetchTransportParameters) {}
6767

6868
async send(data: Uint8Array, timeoutMillis: number): Promise<ExportResponse> {

0 commit comments

Comments
 (0)