Skip to content

Commit f4edd14

Browse files
authored
Implement new preprocessData and types to support new React marks (#20)
1 parent bb64e8c commit f4edd14

5 files changed

Lines changed: 2127 additions & 0 deletions

File tree

src/constants.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// @flow
2+
// App constants
3+
4+
export const REACT_TOTAL_NUM_LANES = 31;

src/types.js

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,25 @@ export type Return<T> = Return_<*, T>;
1414

1515
export type Milliseconds = number;
1616

17+
/** @deprecated */
1718
export type ReactPriority = 'unscheduled' | 'high' | 'normal' | 'low';
1819

20+
/** @deprecated */
1921
export type ReactEventType =
2022
| 'schedule-render'
2123
| 'schedule-state-update'
2224
| 'suspend';
2325

2426
export type ReactMeasureType =
2527
| 'commit'
28+
// render-idle: A measure spanning the time when a render starts, through all
29+
// yields and restarts, and ends when commit stops OR render is cancelled.
2630
| 'render-idle'
2731
| 'render'
2832
| 'layout-effects'
2933
| 'passive-effects';
3034

35+
/** @deprecated */
3136
export type ReactEvent = {|
3237
+type: ReactEventType,
3338
+priority: ReactPriority,
@@ -39,6 +44,7 @@ export type ReactEvent = {|
3944

4045
export type BatchUID = number;
4146

47+
/** @deprecated */
4248
export type ReactMeasure = {|
4349
+type: ReactMeasureType,
4450
+priority: ReactPriority,
@@ -48,12 +54,14 @@ export type ReactMeasure = {|
4854
+depth: number,
4955
|};
5056

57+
/** @deprecated */
5158
export type ReactProfilerDataPriority = {|
5259
events: Array<ReactEvent>,
5360
measures: Array<ReactMeasure>,
5461
maxNestedMeasures: number,
5562
|};
5663

64+
/** @deprecated */
5765
export type ReactProfilerData = {|
5866
startTime: number,
5967
duration: number,
@@ -64,11 +72,84 @@ export type ReactProfilerData = {|
6472
|};
6573

6674
export type ReactHoverContextInfo = {|
75+
/** @deprecated */
6776
event: ReactEvent | null,
77+
/** @deprecated */
6878
measure: ReactMeasure | null,
79+
/** @deprecated */
6980
priorityIndex: number | null,
81+
/** @deprecated */
7082
data: ReactProfilerData | null,
7183
flamechartNode: FlamechartFrame | null,
7284
|};
7385

7486
export type FlamechartData = Flamechart;
87+
88+
export type ReactLane = number;
89+
90+
type BaseReactEvent = {|
91+
+componentName?: string,
92+
+componentStack?: string,
93+
+timestamp: Milliseconds,
94+
|};
95+
96+
type BaseReactScheduleEvent = {|
97+
...BaseReactEvent,
98+
+lanes: ReactLane[],
99+
|};
100+
export type ReactScheduleRenderEvent = {|
101+
...BaseReactScheduleEvent,
102+
type: 'schedule-render',
103+
|};
104+
export type ReactScheduleStateUpdateEvent = {|
105+
...BaseReactScheduleEvent,
106+
type: 'schedule-state-update',
107+
isCascading: boolean,
108+
|};
109+
export type ReactScheduleForceUpdateEvent = {|
110+
...BaseReactScheduleEvent,
111+
type: 'schedule-force-update',
112+
isCascading: boolean,
113+
|};
114+
115+
type BaseReactSuspenseEvent = {|
116+
...BaseReactEvent,
117+
id: string,
118+
|};
119+
export type ReactSuspenseSuspendEvent = {|
120+
...BaseReactSuspenseEvent,
121+
type: 'suspense-suspend',
122+
|};
123+
export type ReactSuspenseResolvedEvent = {|
124+
...BaseReactSuspenseEvent,
125+
type: 'suspense-resolved',
126+
|};
127+
export type ReactSuspenseRejectedEvent = {|
128+
...BaseReactSuspenseEvent,
129+
type: 'suspense-rejected',
130+
|};
131+
132+
export type ReactEventV2 =
133+
| ReactScheduleRenderEvent
134+
| ReactScheduleStateUpdateEvent
135+
| ReactScheduleForceUpdateEvent
136+
| ReactSuspenseSuspendEvent
137+
| ReactSuspenseResolvedEvent
138+
| ReactSuspenseRejectedEvent;
139+
export type ReactEventTypeV2 = $PropertyType<ReactEventV2, 'type'>;
140+
141+
export type ReactMeasureV2 = {|
142+
+type: ReactMeasureType,
143+
+lanes: ReactLane[],
144+
+timestamp: Milliseconds,
145+
+duration: Milliseconds,
146+
+batchUID: BatchUID,
147+
+depth: number,
148+
|};
149+
150+
export type ReactProfilerDataV2 = {|
151+
startTime: number,
152+
duration: number,
153+
events: ReactEventV2[],
154+
measures: ReactMeasureV2[],
155+
|};

0 commit comments

Comments
 (0)