📊 Telemetry Service for Firebase & Sentry
A lightweight telemetry service for React apps, supporting Firebase Analytics, Firebase Performance, and Sentry error tracking using the Firebase Modular SDK.
🚀 Features
✅ Firebase Analytics (logEvent, setUserId) ✅ Firebase Performance Monitoring ✅ Sentry Error Logging (captureException, setUser) ✅ Supports both JavaScript and TypeScript React Apps ✅ Tree-shakable (Reduces Bundle Size)
📦 Installation
Install via NPM:
npm install your-npm-package-name
🔥 Usage
1️⃣ Import the Package
import Telemetry from "your-npm-package-name";
2️⃣ Initialize Telemetry
const telemetry = new Telemetry({ firebase: { apiKey: "YOUR_FIREBASE_API_KEY", authDomain: "YOUR_FIREBASE_AUTH_DOMAIN", projectId: "YOUR_FIREBASE_PROJECT_ID", storageBucket: "YOUR_FIREBASE_STORAGE_BUCKET", messagingSenderId: "YOUR_FIREBASE_MESSAGING_SENDER_ID", appId: "YOUR_FIREBASE_APP_ID", measurementId: "YOUR_FIREBASE_MEASUREMENT_ID", }, sentry: { dsn: "YOUR_SENTRY_DSN", environment: "production", }, });
3️⃣ Log Events
telemetry.logEvent("button_click", { buttonName: "Sign Up" });
4️⃣ Set User Details
telemetry.setUserDetails({ uid: "12345", email: "user@example.com", username: "exampleUser", });
5️⃣ Log Errors
try { throw new Error("Something went wrong!"); } catch (error) { telemetry.logError(error); }
✅ Works with JavaScript React Apps
If you’re using JavaScript instead of TypeScript, just import and use it as:
import Telemetry from "your-npm-package-name";
const telemetry = new Telemetry({ firebase: { /* Firebase Config */ }, sentry: { dsn: "..." } });
🧪 Running Unit Tests
This package includes unit tests using Jest.
1️⃣ Install Development Dependencies
npm install --save-dev jest ts-jest @types/jest
2️⃣ Run Tests
npm test
✅ Expected Output:
PASS src/Telemetry.test.ts ✓ should initialize Firebase and Sentry ✓ should log an event ✓ should set user details ✓ should log an error
🤝 Contributing 1. Clone this repo:
git clone https://github.com/your-username/telemetry-service.git
2. Install dependencies:
npm install
3. Run tests:
npm test
4. Open a Pull Request to contribute 🎉
📝 License
This project is licensed under the MIT License.
🚀 Future Improvements
✅ Add more telemetry providers (e.g., LogRocket, Amplitude) ✅ Add custom logging levels ✅ Optimize Firebase performance metrics
Now, your README.md is professional, clear, and ready for NPM! 🚀 Would you like a GitHub workflow (CI/CD) setup for automated testing & publishing? 🎯