Matches the given routes to a Request and returns a RSC Response encoding an
RSCPayload for consumption by a RSC enabled client router.
import {
createTemporaryReferenceSet,
decodeAction,
decodeReply,
loadServerAction,
renderToReadableStream,
} from "@vitejs/plugin-rsc/rsc";
import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router";
matchRSCServerRequest({
createTemporaryReferenceSet,
decodeAction,
decodeFormState,
decodeReply,
loadServerAction,
request,
routes: routes(),
generateResponse(match) {
return new Response(
renderToReadableStream(match.payload),
{
status: match.statusCode,
headers: match.headers,
},
);
},
});
async function matchRSCServerRequest({
createTemporaryReferenceSet,
basename,
decodeReply,
requestContext,
loadServerAction,
decodeAction,
decodeFormState,
onError,
request,
routes,
generateResponse,
}: {
createTemporaryReferenceSet: () => unknown;
basename?: string;
decodeReply?: DecodeReplyFunction;
decodeAction?: DecodeActionFunction;
decodeFormState?: DecodeFormStateFunction;
requestContext?: unstable_RouterContextProvider;
loadServerAction?: LoadServerActionFunction;
onError?: (error: unknown) => void;
request: Request;
routes: RSCRouteConfigEntry[];
generateResponse: (
match: RSCMatch,
{
temporaryReferences,
}: {
temporaryReferences: unknown;
},
) => Response;
}): Promise<Response>;
The basename to use when matching the request.
Your react-server-dom-xyz/server's decodeAction function, responsible for loading a server action.
Your react-server-dom-xyz/server's decodeReply function, used to decode the server function's arguments and bind them to the
implementation for invocation by the router.
A function responsible for decoding form state for progressively enhanceable forms with useActionState using your
react-server-dom-xyz/server's decodeFormState.
A function responsible for using your renderToReadableStream to generate a Response encoding the RSCPayload.
Your react-server-dom-xyz/server's loadServerAction function, used to load a server action by ID.
The request to match against.
An instance of unstable_RouterContextProvider that should be created per request, to be passed to loaders, actions and middleware.
Your route definitions.
A function that returns a temporary reference set for the request, used to track temporary references in the RSC stream.
An optional error handler that will be called with any errors that occur during the request processing.
A Response that contains the RSC data for hydration.