UNPKG

rwsdk

Version:

Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime

28 lines (27 loc) 1.14 kB
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime"; import { renderToRscStream } from "./renderToRscStream"; import { transformRscToHtmlStream } from "./transformRscToHtmlStream"; import { requestInfo } from "../requestInfo/worker"; import { injectRSCPayload } from "rsc-html-stream/server"; export const IdentityDocument = ({ children }) => (_jsx(_Fragment, { children: children })); export const renderToStream = async (element, { Document = IdentityDocument, injectRSCPayload: shouldInjectRSCPayload = false, onError = () => { }, } = {}) => { let rscStream = renderToRscStream({ node: element, actionResult: null, onError, }); if (shouldInjectRSCPayload) { const [rscPayloadStream1, rscPayloadStream2] = rscStream.tee(); rscStream = rscPayloadStream1; rscStream = rscStream.pipeThrough(injectRSCPayload(rscPayloadStream2, { nonce: requestInfo.rw.nonce, })); } const htmlStream = await transformRscToHtmlStream({ stream: rscStream, Document, requestInfo, onError, }); return htmlStream; };