A tool for people curious about the React Server Components protocol rscexplorer.dev/
rsc react
at main 135 lines 3.6 kB view raw
1// Type declarations for react-server-dom-webpack 2// Based on Flow types from React source 3 4declare module "react-server-dom-webpack/server" { 5 import type { Thenable, ReactNode } from "react"; 6 7 export type TemporaryReferenceSet = Set<unknown>; 8 9 export type ClientManifest = { 10 [moduleId: string]: { 11 id: string; 12 chunks: string[]; 13 name: string; 14 }; 15 }; 16 17 export type ServerManifest = { 18 [id: string]: { 19 id: string; 20 chunks: string[]; 21 name: string; 22 }; 23 }; 24 25 export type RenderOptions = { 26 debugChannel?: { readable?: ReadableStream; writable?: WritableStream }; 27 environmentName?: string | (() => string); 28 filterStackFrame?: (url: string, functionName: string) => boolean; 29 identifierPrefix?: string; 30 signal?: AbortSignal; 31 temporaryReferences?: TemporaryReferenceSet; 32 onError?: (error: unknown) => void; 33 }; 34 35 export type StaticResult = { 36 prelude: ReadableStream; 37 }; 38 39 export function renderToReadableStream( 40 model: ReactNode, 41 webpackMap: ClientManifest, 42 options?: RenderOptions, 43 ): ReadableStream; 44 45 export function prerender( 46 model: ReactNode, 47 webpackMap: ClientManifest, 48 options?: RenderOptions, 49 ): Promise<StaticResult>; 50 51 export function decodeReply<T = unknown>( 52 body: string | FormData, 53 webpackMap: ServerManifest, 54 options?: { temporaryReferences?: TemporaryReferenceSet }, 55 ): Thenable<T>; 56 57 export function decodeAction<T = unknown>( 58 body: FormData, 59 serverManifest: ServerManifest, 60 ): Promise<() => T> | null; 61 62 export function decodeFormState<S>( 63 actionResult: S, 64 body: FormData, 65 serverManifest: ServerManifest, 66 ): Promise<unknown>; 67 68 export function registerServerReference<T extends Function>( 69 reference: T, 70 id: string, 71 exportName: string | null, 72 ): T; 73 74 export function registerClientReference<T>( 75 proxyImplementation: T, 76 id: string, 77 exportName: string, 78 ): T; 79 80 export function createClientModuleProxy<T = Record<string, unknown>>(moduleId: string): T; 81 82 export function createTemporaryReferenceSet(): TemporaryReferenceSet; 83} 84 85declare module "react-server-dom-webpack/client" { 86 import type { Thenable } from "react"; 87 88 export type TemporaryReferenceSet = Set<unknown>; 89 90 export type CallServerCallback = (id: string, args: unknown[]) => Promise<unknown>; 91 92 export type FindSourceMapURLCallback = ( 93 fileName: string, 94 environmentName: string, 95 ) => string | null | undefined; 96 97 export type Options = { 98 callServer?: CallServerCallback; 99 debugChannel?: { writable?: WritableStream; readable?: ReadableStream }; 100 temporaryReferences?: TemporaryReferenceSet; 101 findSourceMapURL?: FindSourceMapURLCallback; 102 replayConsoleLogs?: boolean; 103 environmentName?: string; 104 startTime?: number; 105 endTime?: number; 106 }; 107 108 export function createFromReadableStream<T = unknown>( 109 stream: ReadableStream, 110 options?: Options, 111 ): Thenable<T>; 112 113 export function createFromFetch<T = unknown>( 114 promiseForResponse: Promise<Response>, 115 options?: Options, 116 ): Thenable<T>; 117 118 export function encodeReply( 119 value: unknown, 120 options?: { temporaryReferences?: TemporaryReferenceSet; signal?: AbortSignal }, 121 ): Promise<string | FormData>; 122 123 export function createServerReference<T extends Function>( 124 id: string, 125 callServer: CallServerCallback, 126 ): T; 127 128 export function registerServerReference<T extends Function>( 129 reference: T, 130 id: string, 131 exportName: string | null, 132 ): T; 133 134 export function createTemporaryReferenceSet(): TemporaryReferenceSet; 135}