diff --git a/Libraries/Core/RawEventTelemetryEventEmitter.js b/Libraries/Core/RawEventEmitter.js similarity index 50% rename from Libraries/Core/RawEventTelemetryEventEmitter.js rename to Libraries/Core/RawEventEmitter.js index be1f134eb66..cd330469cd7 100644 --- a/Libraries/Core/RawEventTelemetryEventEmitter.js +++ b/Libraries/Core/RawEventEmitter.js @@ -11,7 +11,7 @@ import EventEmitter from '../vendor/emitter/EventEmitter'; import type {IEventEmitter} from '../vendor/emitter/EventEmitter'; -export type RawEventTelemetryEvent = $ReadOnly<{| +export type RawEventEmitterEvent = $ReadOnly<{| eventName: string, // We expect, but do not/cannot require, that nativeEvent is an object // with the properties: key, elementType (string), type (string), tag (numeric), @@ -20,10 +20,19 @@ export type RawEventTelemetryEvent = $ReadOnly<{| |}>; type RawEventDefinitions = { - [eventChannel: string]: [RawEventTelemetryEvent], + [eventChannel: string]: [RawEventEmitterEvent], }; -const RawEventTelemetryEventEmitter: IEventEmitter = +const RawEventEmitter: IEventEmitter = new EventEmitter(); -export default RawEventTelemetryEventEmitter; +// See the React renderer / react repo for how this is used. +// Raw events are emitted here when they are received in JS +// and before any event Plugins process them or before components +// have a chance to respond to them. This allows you to implement +// app-specific perf monitoring, which is unimplemented by default, +// making this entire RawEventEmitter do nothing by default until +// *you* add listeners for your own app. +// Besides perf monitoring and maybe debugging, this RawEventEmitter +// should not be used. +export default RawEventEmitter; diff --git a/Libraries/ReactPrivate/ReactNativePrivateInterface.js b/Libraries/ReactPrivate/ReactNativePrivateInterface.js index b4c8237fa65..d671212dca5 100644 --- a/Libraries/ReactPrivate/ReactNativePrivateInterface.js +++ b/Libraries/ReactPrivate/ReactNativePrivateInterface.js @@ -21,7 +21,7 @@ import typeof flattenStyle from '../StyleSheet/flattenStyle'; import {type DangerouslyImpreciseStyleProp} from '../StyleSheet/StyleSheet'; import typeof ReactFiberErrorDialog from '../Core/ReactFiberErrorDialog'; import typeof legacySendAccessibilityEvent from '../Components/AccessibilityInfo/legacySendAccessibilityEvent'; -import typeof RawEventTelemetryEventEmitter from '../Core/RawEventTelemetryEventEmitter'; +import typeof RawEventEmitter from '../Core/RawEventEmitter'; // flowlint unsafe-getters-setters:off module.exports = { @@ -63,7 +63,7 @@ module.exports = { get legacySendAccessibilityEvent(): legacySendAccessibilityEvent { return require('../Components/AccessibilityInfo/legacySendAccessibilityEvent'); }, - get RawEventTelemetryEventEmitter(): RawEventTelemetryEventEmitter { - return require('../Core/RawEventTelemetryEventEmitter').default; + get RawEventEmitter(): RawEventEmitter { + return require('../Core/RawEventEmitter').default; }, };