Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
43 lines
1.3 KiB
Plaintext
43 lines
1.3 KiB
Plaintext
import { InstrumentationBase } from '@opentelemetry/instrumentation';
|
|
import { SDK_VERSION } from '@sentry/core';
|
|
import { patchFirestore } from './patches/firestore.js';
|
|
import { patchFunctions } from './patches/functions.js';
|
|
|
|
const DefaultFirebaseInstrumentationConfig = {};
|
|
const firestoreSupportedVersions = ['>=3.0.0 <5']; // firebase 9+
|
|
const functionsSupportedVersions = ['>=6.0.0 <7']; // firebase-functions v2
|
|
|
|
/**
|
|
* Instrumentation for Firebase services, specifically Firestore.
|
|
*/
|
|
class FirebaseInstrumentation extends InstrumentationBase {
|
|
constructor(config = DefaultFirebaseInstrumentationConfig) {
|
|
super('@sentry/instrumentation-firebase', SDK_VERSION, config);
|
|
}
|
|
|
|
/**
|
|
* sets config
|
|
* @param config
|
|
*/
|
|
setConfig(config = {}) {
|
|
super.setConfig({ ...DefaultFirebaseInstrumentationConfig, ...config });
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @protected
|
|
*/
|
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
init() {
|
|
const modules = [];
|
|
|
|
modules.push(patchFirestore(this.tracer, firestoreSupportedVersions, this._wrap, this._unwrap, this.getConfig()));
|
|
modules.push(patchFunctions(this.tracer, functionsSupportedVersions, this._wrap, this._unwrap, this.getConfig()));
|
|
|
|
return modules;
|
|
}
|
|
}
|
|
|
|
export { FirebaseInstrumentation };
|
|
//# sourceMappingURL=firebaseInstrumentation.js.map
|