From f1a3ff0dd169945fbc482bc18d37b4646a335cb9 Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 11 Feb 2025 05:42:24 -0800 Subject: [PATCH] Update RCTDeviceEventEmitter singleton instantiation (#49085) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49085 Changelog: [Internal] Reviewed By: huntie Differential Revision: D68953499 fbshipit-source-id: ea469813593cc4bcb746345a78c68dc7b0b4d56d --- .../Libraries/EventEmitter/RCTDeviceEventEmitter.js | 9 +++++---- scripts/build/build-types/buildTypes.js | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js b/packages/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js index b321c884b5f..1f77685349b 100644 --- a/packages/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js +++ b/packages/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js @@ -23,7 +23,7 @@ type RCTDeviceEventDefinitions = {[name: string]: Array}; * * NativeModules that emit events should instead subclass `NativeEventEmitter`. */ -class RCTDeviceEventEmitter extends EventEmitter { +class RCTDeviceEventEmitterImpl extends EventEmitter { // Add systrace to RCTDeviceEventEmitter.emit method for debugging emit>( eventType: TEvent, @@ -34,11 +34,12 @@ class RCTDeviceEventEmitter extends EventEmitter { endEvent(); } } -const instance = new RCTDeviceEventEmitter(); +const RCTDeviceEventEmitter: IEventEmitter = + new RCTDeviceEventEmitterImpl(); Object.defineProperty(global, '__rctDeviceEventEmitter', { configurable: true, - value: instance, + value: RCTDeviceEventEmitter, }); -export default (instance: IEventEmitter); +export default (RCTDeviceEventEmitter: IEventEmitter); diff --git a/scripts/build/build-types/buildTypes.js b/scripts/build/build-types/buildTypes.js index 405beca664e..924893570e5 100644 --- a/scripts/build/build-types/buildTypes.js +++ b/scripts/build/build-types/buildTypes.js @@ -29,6 +29,9 @@ const ENTRY_POINTS = [ // 'packages/react-native/Libraries/ActionSheetIOS/ActionSheetIOS.js', // 'packages/react-native/Libraries/Share/Share.js', 'packages/react-native/Libraries/Alert/Alert.js', + 'packages/react-native/Libraries/EventEmitter/NativeEventEmitter.js', + 'packages/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js', + 'packages/react-native/Libraries/EventEmitter/RCTNativeAppEventEmitter.js', 'packages/react-native/Libraries/Components/ToastAndroid/ToastAndroid.js', 'packages/react-native/Libraries/Settings/Settings.js', 'packages/react-native/Libraries/Performance/Systrace.js',