UNPKG

next

Version:

The React Framework

64 lines (63 loc) 3.81 kB
/** * Web stream operations for the rendering pipeline. * Loaded by stream-ops.ts (re-export in this PR, conditional switcher later). */ import type { PostponedState, PrerenderOptions } from 'react-dom/static'; import { resume } from 'react-dom/server'; type FlightRenderToReadableStream = (model: any, webpackMap: any, options?: any) => ReadableStream<Uint8Array>; export type AnyStream = ReadableStream<Uint8Array>; export type ContinueStreamSharedOptions = { deploymentId: string | undefined; getServerInsertedHTML: () => Promise<string>; getServerInsertedMetadata: () => Promise<string>; }; export type ContinueFizzStreamOptions = ContinueStreamSharedOptions & { inlinedDataStream: AnyStream | undefined; isStaticGeneration: boolean; allReady?: Promise<void>; validateRootLayout?: boolean; suffix?: string; }; export type ContinueStaticPrerenderOptions = ContinueStreamSharedOptions & { inlinedDataStream: AnyStream; }; export type ContinueDynamicHTMLResumeOptions = ContinueStreamSharedOptions & { inlinedDataStream: AnyStream; delayDataUntilFirstHtmlChunk: boolean; }; export type FlightComponentMod = { renderToReadableStream: FlightRenderToReadableStream; }; export type ServerPrerenderComponentMod = { prerender: (...args: any[]) => Promise<any>; }; export type FlightPayload = Parameters<FlightRenderToReadableStream>[0]; export type FlightClientModules = Parameters<FlightRenderToReadableStream>[1]; export type FlightRenderOptions = Parameters<FlightRenderToReadableStream>[2]; export type FizzStreamResult = { stream: AnyStream; allReady: Promise<void>; abort?: (reason?: unknown) => void; }; export { continueStaticPrerender, continueDynamicPrerender, continueStaticFallbackPrerender, continueDynamicHTMLResume, streamToBuffer, chainStreams, createDocumentClosingStream, } from '../stream-utils/node-web-streams-helper'; export { processPrelude } from './app-render-prerender-utils'; /** * Wrapper for continueFizzStream that accepts AnyStream. * The underlying implementation expects ReactDOMServerReadableStream but at * the stream-ops boundary we only expose AnyStream. */ export declare function continueFizzStream(renderStream: AnyStream, opts: ContinueFizzStreamOptions): Promise<ReadableStream<Uint8Array>>; export declare const nodeReadableToWeb: ((readable: import('node:stream').Readable) => ReadableStream<Uint8Array>) | undefined; export declare function createInlinedDataStream(source: AnyStream, nonce: string | undefined, formState: unknown | null): AnyStream; export declare function createPendingStream(): AnyStream; export declare function createOnHeadersCallback(appendHeader: (key: string, value: string) => void): NonNullable<PrerenderOptions['onHeaders']>; export declare function resumeAndAbort(element: React.ReactElement, postponed: PostponedState | null, opts: Parameters<typeof resume>[2] & { nonce?: string; }): Promise<AnyStream>; export declare function renderToFlightStream(ComponentMod: FlightComponentMod, payload: FlightPayload, clientModules: FlightClientModules, opts: FlightRenderOptions): AnyStream; export declare function streamToString(stream: AnyStream): Promise<string>; export declare function renderToFizzStream(element: React.ReactElement, streamOptions: any): Promise<FizzStreamResult>; export declare function resumeToFizzStream(element: React.ReactElement, postponedState: PostponedState, streamOptions: any): Promise<FizzStreamResult>; export declare function getServerPrerender(ComponentMod: ServerPrerenderComponentMod): (...args: any[]) => any; export declare const getClientPrerender: typeof import('react-dom/static').prerender; export declare function pipeRuntimePrefetchTransform(stream: AnyStream, sentinel: number, isPartial: boolean, staleTime: number): AnyStream;