@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
JavaScript
;
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();