Files
Webklar.com/node_modules/next/dist/esm/server/app-render/create-server-components-renderer.js
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

28 lines
1.3 KiB
JavaScript

import React, { use } from "react";
import { useFlightResponse } from "./use-flight-response";
/**
* Create a component that renders the Flight stream.
* This is only used for renderToHTML, the Flight response does not need additional wrappers.
*/ export function createServerComponentRenderer(ComponentToRender, ComponentMod, { transformStream, clientReferenceManifest, serverContexts, rscChunks }, serverComponentsErrorHandler, nonce) {
let RSCStream;
const createRSCStream = (props)=>{
if (!RSCStream) {
RSCStream = ComponentMod.renderToReadableStream(/*#__PURE__*/ React.createElement(ComponentToRender, props), clientReferenceManifest.clientModules, {
context: serverContexts,
onError: serverComponentsErrorHandler
});
}
return RSCStream;
};
const flightResponseRef = {
current: null
};
const writable = transformStream.writable;
return function ServerComponentWrapper(props) {
const reqStream = createRSCStream(props);
const response = useFlightResponse(writable, reqStream, clientReferenceManifest, rscChunks, flightResponseRef, nonce);
return use(response);
};
}
//# sourceMappingURL=create-server-components-renderer.js.map