@@ -51,6 +51,19 @@ export async function getProps(
5151 // Fire all async prop getters in parallel — they are independent
5252 // (no shared mutable state, no inter-function data dependencies).
5353 // Skip TEXT-only async getters for non-TEXT nodes.
54+ const tBorder = perfStart ( )
55+ const borderP = getBorderProps ( node )
56+ const tBg = perfStart ( )
57+ const bgP = getBackgroundProps ( node )
58+ const tEffect = perfStart ( )
59+ const effectP = getEffectProps ( node )
60+ const tTextStroke = perfStart ( )
61+ const textStrokeP = isText ? getTextStrokeProps ( node ) : undefined
62+ const tTextShadow = perfStart ( )
63+ const textShadowP = isText ? getTextShadowProps ( node ) : undefined
64+ const tReaction = perfStart ( )
65+ const reactionP = getReactionProps ( node )
66+
5467 const [
5568 borderProps ,
5669 backgroundProps ,
@@ -59,12 +72,34 @@ export async function getProps(
5972 textShadowProps ,
6073 reactionProps ,
6174 ] = await Promise . all ( [
62- getBorderProps ( node ) ,
63- getBackgroundProps ( node ) ,
64- getEffectProps ( node ) ,
65- isText ? getTextStrokeProps ( node ) : undefined ,
66- isText ? getTextShadowProps ( node ) : undefined ,
67- getReactionProps ( node ) ,
75+ borderP . then ( ( r ) => {
76+ perfEnd ( 'getProps.border' , tBorder )
77+ return r
78+ } ) ,
79+ bgP . then ( ( r ) => {
80+ perfEnd ( 'getProps.background' , tBg )
81+ return r
82+ } ) ,
83+ effectP . then ( ( r ) => {
84+ perfEnd ( 'getProps.effect' , tEffect )
85+ return r
86+ } ) ,
87+ textStrokeP
88+ ? textStrokeP . then ( ( r ) => {
89+ perfEnd ( 'getProps.textStroke' , tTextStroke )
90+ return r
91+ } )
92+ : undefined ,
93+ textShadowP
94+ ? textShadowP . then ( ( r ) => {
95+ perfEnd ( 'getProps.textShadow' , tTextShadow )
96+ return r
97+ } )
98+ : undefined ,
99+ reactionP . then ( ( r ) => {
100+ perfEnd ( 'getProps.reaction' , tReaction )
101+ return r
102+ } ) ,
68103 ] )
69104
70105 return {
0 commit comments