diff --git a/package-lock.json b/package-lock.json index 19fe4924..c2e4651e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,8 @@ "dot-object": "^2.1.4", "firebase": "^9.23.0", "lodash": "^4.17.21", - "vue": "^3.3.4" + "vue": "^3.3.4", + "web-vitals": "^3.4.0" }, "devDependencies": { "@faker-js/faker": "^7.6.0", @@ -6340,6 +6341,11 @@ "makeerror": "1.0.12" } }, + "node_modules/web-vitals": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.4.0.tgz", + "integrity": "sha512-n9fZ5/bG1oeDkyxLWyep0eahrNcPDF6bFqoyispt7xkW0xhDzpUBTgyDKqWDi1twT0MgH4HvvqzpUyh0ZxZV4A==" + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", diff --git a/package.json b/package.json index e0c63168..cee60678 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,7 @@ "dot-object": "^2.1.4", "firebase": "^9.23.0", "lodash": "^4.17.21", - "vue": "^3.3.4" + "vue": "^3.3.4", + "web-vitals": "^3.4.0" } } diff --git a/src/firestore/interfaces.ts b/src/firestore/interfaces.ts index 7d682b19..93644f53 100644 --- a/src/firestore/interfaces.ts +++ b/src/firestore/interfaces.ts @@ -2,6 +2,7 @@ import { FirebaseApp } from 'firebase/app'; import { Auth, User } from 'firebase/auth'; import { DocumentData, Firestore, Timestamp } from 'firebase/firestore'; import { Functions } from 'firebase/functions'; +import { FirebasePerformance } from 'firebase/performance'; import { FirebaseConfigData } from './util'; export interface IRoarConfigData { @@ -14,6 +15,7 @@ export interface IFirekit { db: Firestore; auth: Auth; functions: Functions; + perf?: FirebasePerformance; user?: User; claimsLastUpdated?: Date; } diff --git a/src/firestore/util.ts b/src/firestore/util.ts index ca49063b..51b9350f 100644 --- a/src/firestore/util.ts +++ b/src/firestore/util.ts @@ -10,6 +10,7 @@ import { } from 'firebase/auth'; import { connectFirestoreEmulator, Firestore, getFirestore } from 'firebase/firestore'; import { Functions, connectFunctionsEmulator, getFunctions } from 'firebase/functions'; +import { getPerformance } from 'firebase/performance'; import _chunk from 'lodash/chunk'; import _difference from 'lodash/difference'; import _flatten from 'lodash/flatten'; @@ -162,6 +163,7 @@ export const initializeFirebaseProject = async ( auth: optionallyMarkRaw('auth', getAuth(app)), db: optionallyMarkRaw('db', getFirestore(app)), functions: optionallyMarkRaw('functions', getFunctions(app)), + perf: getPerformance(app), }; // Auth state persistence is set with ``setPersistence`` and specifies how a