File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2081,8 +2081,7 @@ function vitePluginUseServer(
20812081 manager . serverReferenceMetaMap [ id ] = {
20822082 importId : id ,
20832083 referenceKey : getNormalizedId ( ) ,
2084- exportNames :
2085- 'names' in result ? result . names : result . exportNames ,
2084+ exportNames : result . referenceNames ,
20862085 }
20872086 const importSource = resolvePackage ( `${ PKG_NAME } /react/rsc/server` )
20882087 output . prepend (
Original file line number Diff line number Diff line change 1+ import { parseAstAsync } from 'vite'
2+ import { expect , test } from 'vitest'
3+ import { transformServerActionServer } from './server-action'
4+
5+ async function transform ( input : string ) {
6+ const ast = await parseAstAsync ( input )
7+ return transformServerActionServer ( input , ast , {
8+ runtime : ( value ) => value ,
9+ } )
10+ }
11+
12+ test ( 'normalizes top-level server reference names' , async ( ) => {
13+ const result = await transform (
14+ `'use server'; export async function action() {}` ,
15+ )
16+
17+ expect ( result ) . toMatchObject ( {
18+ exportNames : [ 'action' ] ,
19+ referenceNames : [ 'action' ] ,
20+ } )
21+ } )
22+
23+ test ( 'normalizes inline server reference names' , async ( ) => {
24+ const result = await transform (
25+ `export function App() { return async function action() { 'use server' } }` ,
26+ )
27+
28+ expect ( result ) . toMatchObject ( {
29+ names : [ '$$hoist_0_anonymous_server_function' ] ,
30+ referenceNames : [ '$$hoist_0_anonymous_server_function' ] ,
31+ } )
32+ } )
Original file line number Diff line number Diff line change @@ -20,17 +20,21 @@ export function transformServerActionServer(
2020 | {
2121 exportNames : string [ ]
2222 output : MagicString
23+ referenceNames : string [ ]
2324 }
2425 | {
2526 output : MagicString
2627 names : string [ ]
28+ referenceNames : string [ ]
2729 } {
2830 // TODO: unify (generalize transformHoistInlineDirective to support top-level directive cases)
2931 if ( hasDirective ( ast . body , 'use server' ) ) {
30- return transformWrapExport ( input , ast , options )
32+ const result = transformWrapExport ( input , ast , options )
33+ return { ...result , referenceNames : result . exportNames }
3134 }
32- return transformHoistInlineDirective ( input , ast , {
35+ const result = transformHoistInlineDirective ( input , ast , {
3336 ...options ,
3437 directive : 'use server' ,
3538 } )
39+ return { ...result , referenceNames : result . names }
3640}
You can’t perform that action at this time.
0 commit comments