UNPKG

@dynatrace/react-native-plugin

Version:

This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.

41 lines (40 loc) 1.71 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RuntimeConfigurationObserver = void 0; const DynatraceBridge_1 = require("../../core/DynatraceBridge"); const DynatraceEventBus_1 = require("../DynatraceEventBus"); const INativeRuntimeConfiguration_1 = require("./INativeRuntimeConfiguration"); class RuntimeConfigurationObserverImpl { constructor() { this.EMIT_CONFIGURATION = 'dynatraceConfiguration'; this.runtimeConfiguration = (0, INativeRuntimeConfiguration_1.generateDefaultConfiguration)(); this.observerIsInitiated = false; this.subscription = null; this.setupNativeEventEmitter(); } getCurrentRuntimeConfiguration() { return this.runtimeConfiguration; } isInitiated() { return this.observerIsInitiated; } setupNativeEventEmitter() { const emitter = (0, DynatraceEventBus_1.createEmitterRuntimeConfig)(); this.subscription = (0, DynatraceEventBus_1.addListenerOnce)(emitter, this.subscription, this.EMIT_CONFIGURATION, (data) => { this.runtimeConfiguration = data; this.observerIsInitiated = true; }); if (typeof DynatraceBridge_1.DynatraceNative.getCurrentConfiguration === 'function') { Promise.resolve(DynatraceBridge_1.DynatraceNative.getCurrentConfiguration()) .then((data) => { if (data) { this.runtimeConfiguration = data; this.observerIsInitiated = true; } }) .catch(() => { }); } } } exports.RuntimeConfigurationObserver = new RuntimeConfigurationObserverImpl();