@@ -105,24 +105,34 @@ function transformReactivityFunction(
105105 if ( node . type === 'TSNonNullExpression' ) {
106106 node = node . expression
107107 }
108- if ( node . type !== 'CallExpression' ) return
108+ if ( node . type === 'CallExpression' ) {
109+ if (
110+ parent ?. type === 'VariableDeclarator' &&
111+ new RegExp ( `^\\$(?!(\\$|${ ignore . join ( '|' ) } )?$)` ) . test (
112+ s . sliceNode ( node . callee , { offset } ) ,
113+ )
114+ ) {
115+ s . appendRight ( node . callee . start ! + offset + 1 , '(' )
116+ s . appendRight ( node . end ! + offset , ')' )
117+ }
109118
110- if (
111- parent ?. type === 'VariableDeclarator' &&
112- new RegExp ( `^\\$(?!(\\$|${ ignore . join ( '|' ) } )?$)` ) . test (
113- s . sliceNode ( node . callee , { offset } ) ,
114- )
115- ) {
116- s . appendRight ( node . callee . start ! + offset + 1 , '(' )
117- s . appendRight ( node . end ! + offset , ')' )
118- }
119+ if ( / (?< ! ^ ( \$ ) ? ) \$ $ / . test ( s . sliceNode ( node . callee , { offset } ) ) ) {
120+ s . remove ( node . callee . end ! + offset - 1 , node . callee . end ! + offset )
119121
120- if ( / (?< ! ^ ( \$ ) ? ) \$ $ / . test ( s . sliceNode ( node . callee , { offset } ) ) ) {
121- s . remove ( node . callee . end ! + offset - 1 , node . callee . end ! + offset )
122-
123- node . arguments . forEach ( ( argument ) => {
124- transformArguments ( argument , s , offset )
125- } )
122+ node . arguments . forEach ( ( argument ) => {
123+ transformArguments ( argument , s , offset )
124+ } )
125+ }
126+ } else if (
127+ node . type === 'JSXAttribute' &&
128+ node . value ?. type === 'JSXExpressionContainer' &&
129+ s . sliceNode ( node . name ) . endsWith ( '$' )
130+ ) {
131+ s . remove ( node . name . end ! - 1 , node . name . end ! )
132+ if ( node . value . expression ) {
133+ s . appendLeft ( node . value . expression . start ! + offset , '$$(' )
134+ s . appendRight ( node . value . expression . end ! + offset , ')' )
135+ }
126136 }
127137 } ,
128138 } )
0 commit comments