@dynatrace/react-native-plugin
Version:
This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.
36 lines (35 loc) • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.addListenerOnce = exports.createEmitterNativeOnly = exports.createEmitterRuntimeConfig = void 0;
const react_native_1 = require("react-native");
const DynatraceBridge_1 = require("../core/DynatraceBridge");
const isEmptyObject = (value) => {
if (value == null) {
return true;
}
if (typeof value !== 'object') {
return false;
}
return Object.keys(value).length === 0;
};
const createEmitterRuntimeConfig = () => {
if (react_native_1.Platform.OS === 'ios' && isEmptyObject(DynatraceBridge_1.DynatraceNative || {})) {
return null;
}
const iosModule = react_native_1.NativeModules.DynatraceBridge;
const nativeEmitterModule = react_native_1.Platform.OS === 'android' ? DynatraceBridge_1.DynatraceNative : iosModule;
return new react_native_1.NativeEventEmitter(nativeEmitterModule);
};
exports.createEmitterRuntimeConfig = createEmitterRuntimeConfig;
const createEmitterNativeOnly = () => new react_native_1.NativeEventEmitter(DynatraceBridge_1.DynatraceNative);
exports.createEmitterNativeOnly = createEmitterNativeOnly;
const addListenerOnce = (emitter, current, eventName, handler) => {
if (current != null) {
return current;
}
if (emitter == null) {
return null;
}
return emitter.addListener(eventName, handler);
};
exports.addListenerOnce = addListenerOnce;