@datadog/mobile-react-native
Version:
A client-side React Native module to interact with Datadog
41 lines (39 loc) • 1.64 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DatadogDefaultEventEmitter = void 0;
var _reactNative = require("react-native");
var _DatadogBatchedBridgeEventEmitter = require("./DatadogBatchedBridgeEventEmitter");
var _DatadogNativeEventEmitter = require("./DatadogNativeEventEmitter");
/*
* Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
* This product includes software developed at Datadog (https://www.datadoghq.com/).
* Copyright 2016-Present Datadog, Inc.
*/
class DatadogDefaultEventEmitter {
get isNewArchitecture() {
return global.RN$Bridgeless;
}
constructor(errorHandler) {
try {
const ddSdkModule = _reactNative.NativeModules.DdSdk ||
// eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
require('../../specs/NativeDdSdk').default;
this.eventEmitter = this.isNewArchitecture ? new _DatadogNativeEventEmitter.DatadogNativeEventEmitter(ddSdkModule, errorHandler) : new _DatadogBatchedBridgeEventEmitter.DatadogBatchedBridgeEventEmitter(errorHandler);
} catch (err) {
errorHandler(`ERROR: failed to initialize DatadogDefaultEventEmitter: ${err}`);
}
}
initialize() {
return this.eventEmitter?.initialize() ?? false;
}
addListener(eventName, callback) {
this.eventEmitter?.addListener(eventName, callback);
}
removeAllListeners(eventName) {
this.eventEmitter?.removeAllListeners(eventName);
}
}
exports.DatadogDefaultEventEmitter = DatadogDefaultEventEmitter;
//# sourceMappingURL=DatadogDefaultEventEmitter.js.map