UNPKG

@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
"use strict"; 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();