react-native-event-logger
Version:
A React Native event tracking library with debug capabilities
50 lines • 1.73 kB
JavaScript
import { validateFirebaseEvent } from './eventValidation';
// Global event logger instance
let globalEventLogger = null;
// Function to set the global event logger
export const setGlobalEventLogger = (logger) => {
globalEventLogger = logger;
};
// Standalone logEvent function for direct usage
export const logEvent = (eventName, params, eventType) => {
// Validate the event before logging
const validation = validateFirebaseEvent(eventName, params);
// Create event data
const eventData = {
id: `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
eventName: validation.validName,
params: validation.validParams,
timestamp: Date.now(),
eventType,
validationError: validation.errorMsg || undefined,
};
// Add to global logger if available
if (globalEventLogger) {
globalEventLogger.logEvent(eventName, params, eventType);
}
// Log to console in development
if (__DEV__) {
if (validation.errorMsg) {
console.warn('⚠️ Event Validation Failed:', {
eventName,
params,
error: validation.errorMsg,
});
}
else {
console.log('📊 Event Logged:', {
eventName: validation.validName,
params: validation.validParams,
eventType,
timestamp: new Date(eventData.timestamp).toISOString(),
});
}
}
};
// Clear events function
export const clearEvents = () => {
if (globalEventLogger && typeof globalEventLogger.clearEvents === 'function') {
globalEventLogger.clearEvents();
}
};
//# sourceMappingURL=eventLogger.js.map