UNPKG

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