From 5b75ad9520de41ca269af53cca1dfff9e945dc1d Mon Sep 17 00:00:00 2001 From: Maneesh Tewani Date: Wed, 29 May 2024 14:56:26 -0700 Subject: [PATCH 1/3] Began reporting client sdk information --- packages/data-connect/src/network/fetch.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/data-connect/src/network/fetch.ts b/packages/data-connect/src/network/fetch.ts index 67b8169d3a0..ab62c55aaf3 100644 --- a/packages/data-connect/src/network/fetch.ts +++ b/packages/data-connect/src/network/fetch.ts @@ -16,12 +16,16 @@ */ import { Code, DataConnectError } from '../core/error'; +import { SDK_VERSION } from '../core/version'; import { logDebug, logError } from '../logger'; let connectFetch: typeof fetch | null = globalThis.fetch; export function initializeFetch(fetchImpl: typeof fetch) { connectFetch = fetchImpl; } +function getGoogApiClientValue(): string { + return 'gl-js/ fire/' + SDK_VERSION; +} export function dcFetch( url: string, body: U, @@ -32,7 +36,8 @@ export function dcFetch( throw new DataConnectError(Code.OTHER, 'No Fetch Implementation detected!'); } const headers: HeadersInit = { - 'Content-Type': 'application/json' + 'Content-Type': 'application/json', + 'X-Goog-Api-Client': getGoogApiClientValue(), }; if (accessToken) { headers['X-Firebase-Auth-Token'] = accessToken; From adf6da91ffbaafd76f1ac35d0de597ea9abd10c7 Mon Sep 17 00:00:00 2001 From: Maneesh Tewani Date: Wed, 29 May 2024 15:00:23 -0700 Subject: [PATCH 2/3] Fixed formatting --- packages/data-connect/src/api/DataConnect.ts | 11 +++++------ packages/data-connect/src/api/Mutation.ts | 4 ++-- .../data-connect/src/core/FirebaseAuthProvider.ts | 1 - packages/data-connect/src/core/QueryManager.ts | 4 +--- packages/data-connect/src/index.ts | 3 +-- packages/data-connect/src/network/fetch.ts | 10 +++++++--- packages/data-connect/src/util/map.ts | 6 +++++- packages/data-connect/test/emulatorSeeder.ts | 2 -- packages/data-connect/test/queries.test.ts | 10 +++++++--- 9 files changed, 28 insertions(+), 23 deletions(-) diff --git a/packages/data-connect/src/api/DataConnect.ts b/packages/data-connect/src/api/DataConnect.ts index 00e9615f9a2..2e3cd0157ea 100644 --- a/packages/data-connect/src/api/DataConnect.ts +++ b/packages/data-connect/src/api/DataConnect.ts @@ -36,7 +36,6 @@ import { RESTTransport } from '../network/transport/rest'; import { MutationManager } from './Mutation'; - /** * Connector Config for calling Data Connect backend. */ @@ -131,10 +130,10 @@ export class DataConnect { if (this._authProvider) { this._authTokenProvider = new FirebaseAuthProvider( - this.app.name, - this.app.options, - this._authProvider - ); + this.app.name, + this.app.options, + this._authProvider + ); } this.initialized = true; @@ -239,7 +238,7 @@ export function getDataConnect( /** * Delete DataConnect instance * @param dataConnect DataConnect instance - * @returns + * @returns */ export function terminate(dataConnect: DataConnect): Promise { return dataConnect._delete(); diff --git a/packages/data-connect/src/api/Mutation.ts b/packages/data-connect/src/api/Mutation.ts index 3a475d4c625..ce307f953d1 100644 --- a/packages/data-connect/src/api/Mutation.ts +++ b/packages/data-connect/src/api/Mutation.ts @@ -40,7 +40,7 @@ export function mutationRef( mutationName: string ): MutationRef; /** - * + * * @param dcInstance Data Connect instance * @param mutationName name of mutation * @param variables variables to send with mutation @@ -51,7 +51,7 @@ export function mutationRef( variables: Variables ): MutationRef; /** - * + * * @param dcInstance Data Connect instance * @param mutationName name of mutation * @param variables variables to send with mutation diff --git a/packages/data-connect/src/core/FirebaseAuthProvider.ts b/packages/data-connect/src/core/FirebaseAuthProvider.ts index e74e6581388..e98f5ae09c8 100644 --- a/packages/data-connect/src/core/FirebaseAuthProvider.ts +++ b/packages/data-connect/src/core/FirebaseAuthProvider.ts @@ -79,4 +79,3 @@ export class FirebaseAuthProvider implements AuthTokenProvider { .then(auth => auth.removeAuthTokenListener(listener)); } } - diff --git a/packages/data-connect/src/core/QueryManager.ts b/packages/data-connect/src/core/QueryManager.ts index 6df1a4f9a42..0a9a170281d 100644 --- a/packages/data-connect/src/core/QueryManager.ts +++ b/packages/data-connect/src/core/QueryManager.ts @@ -163,9 +163,7 @@ export class QueryManager { queryRef.variables )}. Calling executeQuery.` ); - const promise = this.executeQuery( - queryRef as QueryRef - ); + const promise = this.executeQuery(queryRef as QueryRef); // We want to ignore the error and let subscriptions handle it promise.then(undefined, err => {}); } diff --git a/packages/data-connect/src/index.ts b/packages/data-connect/src/index.ts index b59c6e72b0c..946c72c38d5 100644 --- a/packages/data-connect/src/index.ts +++ b/packages/data-connect/src/index.ts @@ -29,9 +29,8 @@ export * from './api.browser'; registerDataConnect(); - declare module '@firebase/component' { interface NameServiceMapping { 'data-connect': DataConnect; } -} \ No newline at end of file +} diff --git a/packages/data-connect/src/network/fetch.ts b/packages/data-connect/src/network/fetch.ts index ab62c55aaf3..0bfd1629b2a 100644 --- a/packages/data-connect/src/network/fetch.ts +++ b/packages/data-connect/src/network/fetch.ts @@ -37,7 +37,7 @@ export function dcFetch( } const headers: HeadersInit = { 'Content-Type': 'application/json', - 'X-Goog-Api-Client': getGoogApiClientValue(), + 'X-Goog-Api-Client': getGoogApiClientValue() }; if (accessToken) { headers['X-Firebase-Auth-Token'] = accessToken; @@ -49,9 +49,13 @@ export function dcFetch( method: 'POST', headers, signal - }).catch(err => { - throw new DataConnectError(Code.OTHER, "Failed to fetch: " + JSON.stringify(err)); }) + .catch(err => { + throw new DataConnectError( + Code.OTHER, + 'Failed to fetch: ' + JSON.stringify(err) + ); + }) .then(async response => { let jsonResponse = null; try { diff --git a/packages/data-connect/src/util/map.ts b/packages/data-connect/src/util/map.ts index a86d3aef0ef..5b96eb2f3dc 100644 --- a/packages/data-connect/src/util/map.ts +++ b/packages/data-connect/src/util/map.ts @@ -15,7 +15,11 @@ * limitations under the License. */ -export function setIfNotExists(map: Map, key: string, val: T): void { +export function setIfNotExists( + map: Map, + key: string, + val: T +): void { if (!map.has(key)) { map.set(key, val); } diff --git a/packages/data-connect/test/emulatorSeeder.ts b/packages/data-connect/test/emulatorSeeder.ts index edcb512b9ef..3f9b86b117c 100644 --- a/packages/data-connect/test/emulatorSeeder.ts +++ b/packages/data-connect/test/emulatorSeeder.ts @@ -38,8 +38,6 @@ import * as path from 'path'; // } // } - - import { ReferenceType } from '../src'; // } diff --git a/packages/data-connect/test/queries.test.ts b/packages/data-connect/test/queries.test.ts index fb912005356..d84279d014f 100644 --- a/packages/data-connect/test/queries.test.ts +++ b/packages/data-connect/test/queries.test.ts @@ -31,8 +31,10 @@ import { QueryResult, SerializedRef, subscribe, - terminate -, SOURCE_CACHE, SOURCE_SERVER } from '../src'; + terminate, + SOURCE_CACHE, + SOURCE_SERVER +} from '../src'; import { setupQueries } from './emulatorSeeder'; import { getConnectionConfig, initDatabase, PROJECT_ID } from './util'; @@ -161,7 +163,9 @@ describe('DataConnect Tests', async () => { }); connectDataConnectEmulator(fakeInstance, 'localhost', Number(0)); const taskListQuery = queryRef(dc, 'listPosts'); - expect(await executeQuery(taskListQuery)).to.eventually.be.rejectedWith('ECONNREFUSED'); + expect(await executeQuery(taskListQuery)).to.eventually.be.rejectedWith( + 'ECONNREFUSED' + ); }); }); async function waitForFirstEvent( From 8e176becf29e5f40512eac57b4f1e0df38f29692 Mon Sep 17 00:00:00 2001 From: Maneesh Tewani Date: Fri, 31 May 2024 10:02:30 -0700 Subject: [PATCH 3/3] Included docsite changes --- docs-devsite/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs-devsite/index.md b/docs-devsite/index.md index 2c22b58d80c..7cf4e7f4e3b 100644 --- a/docs-devsite/index.md +++ b/docs-devsite/index.md @@ -19,6 +19,7 @@ https://github.com/firebase/firebase-js-sdk | [@firebase/app](./app.md#app_package) | Firebase App | | [@firebase/app-check](./app-check.md#app-check_package) | The Firebase App Check Web SDK. | | [@firebase/auth](./auth.md#auth_package) | Firebase Authentication | +| [@firebase/data-connect](./data-connect.md#data-connect_package) | Firebase Data Connect | | [@firebase/database](./database.md#database_package) | Firebase Realtime Database | | [@firebase/firestore](./firestore.md#firestore_package) | Cloud Firestore | | [@firebase/functions](./functions.md#functions_package) | Cloud Functions for Firebase |