@datadog/mobile-react-native
Version:
A client-side React Native module to interact with Datadog
35 lines • 1.25 kB
JavaScript
/*
* 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.
*/
import { NativeEventEmitter, Platform } from 'react-native';
export class DatadogNativeEventEmitter {
constructor(nativeModule, errorHandler) {
this.nativeModule = nativeModule;
this.errorHandler = errorHandler;
}
initialize() {
try {
if (Platform.OS === 'ios') {
if (!this.nativeModule) {
this.errorHandler('ERROR: Initializing iOS Native Event Emitter with undefined NativeModule.');
}
this.nativeEventEmitter = new NativeEventEmitter(this.nativeModule);
} else {
this.nativeEventEmitter = new 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);
}
}
//# sourceMappingURL=DatadogNativeEventEmitter.js.map