11import { getAssetFromKV } from '@cloudflare/kv-asset-handler' ;
22import staticContentManifest from '__STATIC_CONTENT_MANIFEST' ;
33import * as React from 'react' ;
4- import type { ServerRef , WebpackMap } from 'react-server-dom-webpack' ;
4+ import type { WebpackMap } from 'react-server-dom-webpack' ;
55import type { ReactModel } from 'react-server-dom-webpack/server' ;
66import ReactServerDOMServer from 'react-server-dom-webpack/server' ;
77import { App } from '../app.js' ;
@@ -12,7 +12,7 @@ export interface RscWorkerEnv {
1212 __STATIC_CONTENT : { } ;
1313}
1414
15- declare var __webpack_require__ : ( id : string ) => Record < string , unknown > ;
15+ declare var __webpack_require__ : ( moduleId : string ) => Record < string , unknown > ;
1616
1717const handleGet : ExportedHandlerFetchHandler < RscWorkerEnv > = async (
1818 request ,
@@ -42,14 +42,18 @@ const handleGet: ExportedHandlerFetchHandler<RscWorkerEnv> = async (
4242const handlePost : ExportedHandlerFetchHandler < RscWorkerEnv > = async (
4343 request ,
4444) => {
45- const rscActionHeader = request . headers . get ( `x-rsc-action` ) ;
45+ const serverReferenceId = request . headers . get ( `x-rsc-action` ) ;
46+ const [ moduleId , exportName ] = serverReferenceId ?. split ( `#` ) ?? [ ] ;
47+
48+ if ( ! moduleId || ! exportName ) {
49+ console . error (
50+ `Invalid server reference ID: ${ JSON . stringify ( serverReferenceId ) } ` ,
51+ ) ;
4652
47- if ( ! rscActionHeader ) {
4853 return new Response ( null , { status : 400 } ) ;
4954 }
5055
51- const { id, name} = JSON . parse ( rscActionHeader ) as ServerRef ;
52- const action = __webpack_require__ ( id ) [ name ] ;
56+ const action = __webpack_require__ ( moduleId ) [ exportName ] ;
5357
5458 if ( ! isValidServerReference ( action ) ) {
5559 console . error ( action , `is not a valid server reference.` ) ;
0 commit comments