@dynatrace/react-native-plugin
Version:
This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.
35 lines (34 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppStartObserver = void 0;
const react_native_1 = require("react-native");
const EventCreator_1 = require("../events/EventCreator");
const ConsoleLogger_1 = require("../../core/logging/ConsoleLogger");
const DynatraceBridge_1 = require("../../core/DynatraceBridge");
const EventPipeline_1 = require("../events/EventPipeline");
class AppStartObserverImpl {
constructor() {
this.EMIT_APP_START = 'dynatraceAppStartMeasurements';
this.logger = new ConsoleLogger_1.ConsoleLogger('AppStartObserver');
this.setupNativeEventEmitter();
}
call() {
}
setupNativeEventEmitter() {
if (react_native_1.Platform.OS === 'android' ||
Object.keys(DynatraceBridge_1.DynatraceNative).length !== 0) {
const emitter = new react_native_1.NativeEventEmitter(DynatraceBridge_1.DynatraceNative);
emitter.addListener(this.EMIT_APP_START, (data) => {
this.logger.debug(`emitter(${JSON.stringify(data)}})`);
const appStartEvent = (0, EventCreator_1.createAppStartEvent)(data);
if (appStartEvent != null) {
EventPipeline_1.EventPipeline.insertEvent(Object.assign({}, appStartEvent), {});
}
else {
this.logger.debug(`emitter(${JSON.stringify(data)}}): App Start event ignored!`);
}
});
}
}
}
exports.AppStartObserver = new AppStartObserverImpl();