Add RSC wrapper library to simplify server and client #10074
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This adds a
@parcel/rsc
library which simplifies writing both the server and client portions of an RSC app by providing higher level methods that bring together all of the different libraries you need.@parcel/rsc/server
and@parcel/rsc/node
includerenderRequest
andcallAction
functions using the web Request/Response objects, and node IncomingMessage/ServerResponse objects respectively.renderRequest
checks theAccept
header and returns either HTML or an RSC stream.callAction
handles running actions from both client fetches and progressively enhanced forms.@parcel/rsc/client
includes ahydrate
function that hydrates the document with the embedded RSC data, and returns anupdateRoot
function that can be used to update the page for client navigations. It accepts options to handle server actions, and reload the page during HMR. It also includes afetchRSC
function that wrapsfetch
to automatically handle serializing and deserializing via the RSC protocol.