@datadog/mobile-react-native
Version:
A client-side React Native module to interact with Datadog
33 lines • 1.39 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 { NativeModules } from 'react-native';
import { DatadogBatchedBridgeEventEmitter } from './DatadogBatchedBridgeEventEmitter';
import { DatadogNativeEventEmitter } from './DatadogNativeEventEmitter';
export class DatadogDefaultEventEmitter {
get isNewArchitecture() {
return global.RN$Bridgeless;
}
constructor(errorHandler) {
try {
const ddSdkModule = NativeModules.DdSdk ||
// eslint-disable-next-line global-require, @typescript-eslint/no-var-requires
require('../../specs/NativeDdSdk').default;
this.eventEmitter = this.isNewArchitecture ? new DatadogNativeEventEmitter(ddSdkModule, errorHandler) : new 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);
}
}
//# sourceMappingURL=DatadogDefaultEventEmitter.js.map