UNPKG

vite-plugin-react-server

Version:
52 lines 1.74 kB
/** * createBufferedRscStream.ts * * PURPOSE: Creates a buffered RSC stream factory that can generate multiple readable streams * * PROBLEM: Node.js streams can only be consumed once, but in client-side static generation * we need to consume the RSC stream twice: * 1. Write RSC content to index.rsc file * 2. Transform RSC content to HTML for index.html file * * SOLUTION: Buffer all RSC chunks and create a factory that can generate multiple * readable streams from the same buffered data. * * USAGE: * ```typescript * const bufferedStreamFactory = createBufferedRscStream(rscStream, { * route: "/", * logger: myLogger, * verbose: true * }); * * // Create separate streams for each consumer * const rscStream = bufferedStreamFactory.createStream(); * const htmlStream = bufferedStreamFactory.createStream(); * * // Can be piped to different destinations * rscStream.pipe(rscFileWriter); * htmlStream.pipe(htmlTransform); * ``` */ import { Readable } from "node:stream"; export interface BufferedRscStreamOptions { route: string; logger?: any; verbose?: boolean; } export interface BufferedRscStreamFactory { createStream(): Readable; getBufferInfo(): { chunks: number; bytes: number; }; } /** * Creates a buffered RSC stream factory that can generate multiple readable streams * * @param rscStream - The original RSC stream from the worker * @param options - Configuration options * @returns A factory that can create multiple readable streams from the same buffered data */ export declare function createBufferedRscStream(rscStream: Readable, options: BufferedRscStreamOptions): BufferedRscStreamFactory; //# sourceMappingURL=createBufferedRscStream.d.ts.map