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.