@datadog/mobile-react-native
Version:
A client-side React Native module to interact with Datadog
43 lines (41 loc) • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DatadogNativeEventEmitter = void 0;
var _reactNative = require("react-native");
/*
* 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 DatadogNativeEventEmitter {
constructor(nativeModule, errorHandler) {
this.nativeModule = nativeModule;
this.errorHandler = errorHandler;
}
initialize() {
try {
if (_reactNative.Platform.OS === 'ios') {
if (!this.nativeModule) {
this.errorHandler('ERROR: Initializing iOS Native Event Emitter with undefined NativeModule.');
}
this.nativeEventEmitter = new _reactNative.NativeEventEmitter(this.nativeModule);
} else {
this.nativeEventEmitter = new _reactNative.NativeEventEmitter();
}
return true;
} catch (err) {
this.errorHandler(`ERROR: cannot initialize NativeEventEmitter: ${err}`);
return false;
}
}
addListener(eventName, callback) {
this.nativeEventEmitter?.addListener(eventName, callback);
}
removeAllListeners(eventName) {
this.nativeEventEmitter?.removeAllListeners(eventName);
}
}
exports.DatadogNativeEventEmitter = DatadogNativeEventEmitter;
//# sourceMappingURL=DatadogNativeEventEmitter.js.map