vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
118 lines • 5.78 kB
TypeScript
import type { HtmlComponentType, PageComponentType, PagePropOpt, ResolvedUserOptions, RootComponentType } from "../../types.js";
import type { Logger } from "vite";
import type { RscRenderMessage } from "./types.js";
import type { React } from "../../vendor/vendor.server.js";
/**
* Main function that hydrates an RSC render message with all necessary context
*
* This function orchestrates the process of preparing a render message for execution
* by validating, resolving URLs, merging defaults, and setting up components and loaders.
*/
export declare function hydrateRscRenderMessage({ message, pageProps, PageComponent, RootComponent, HtmlComponent, userOptions, logger, manifest, }: {
message: RscRenderMessage;
pageProps: PagePropOpt;
PageComponent: PageComponentType<PagePropOpt>;
RootComponent: RootComponentType | typeof React.Fragment;
HtmlComponent: HtmlComponentType | typeof React.Fragment | undefined;
userOptions: ResolvedUserOptions;
logger: Logger;
manifest: Record<string, {
file: string;
} | string>;
}, { userOptions: defaultUserOptions }?: any): {
url: string;
pageProps: any;
RootComponent: import("react").ExoticComponent<import("react").FragmentProps> | RootComponentType;
HtmlComponent: import("react").ExoticComponent<import("react").FragmentProps> | HtmlComponentType<any, any, any, any> | HtmlComponentType;
PageComponent: PageComponentType<any>;
loader: import("../../types.js").GenericModuleLoader;
normalizer: import("../../types.js").InputNormalizer;
moduleID: ((id: string, sourceContent?: string, isClientByDirective?: boolean) => string) | undefined;
logger: Logger;
autoDiscover: Required<import("../../types.js").AutoDiscoverConfig>;
onMetrics: undefined;
cssFiles: Map<string, import("../../types.js").StyleCssProps | import("../../types.js").LinkCssProps> & Map<string, import("../../types.js").CssContent>;
globalCss: Map<string, import("../../types.js").StyleCssProps | import("../../types.js").LinkCssProps> & Map<string, import("../../types.js").CssContent>;
build: {
pages: string[];
client: string;
server: string;
static: string;
outDir: string;
assetsDir: string;
preserveModulesRoot: boolean;
rscOutputPath: string;
htmlOutputPath: string;
};
as?: keyof import("react").JSX.IntrinsicElements | import("react").JSXElementConstructor<any> | undefined;
children?: import("react").ReactNode;
manifest: import("vite").Manifest;
server?: import("vite").ViteDevServer | undefined;
css: import("../../types.js").RootOptions<boolean>;
worker?: import("worker_threads").Worker | undefined;
dev: Pick<ResolvedUserOptions["dev"], "useHtmlWorker" | "useRscWorker">;
htmlWorkerPath: string;
rscWorkerPath: string;
htmlTimeout: number;
fileWriteTimeout: number;
workerShutdownTimeout: number;
clientPipeableStreamOptions?: import("react-dom/server").RenderToPipeableStreamOptions | undefined;
components?: {
Html?: HtmlComponentType<any, keyof import("react").JSX.IntrinsicElements | import("react").JSXElementConstructor<any>, boolean | undefined, import("react").ReactNode> | undefined;
Root?: RootComponentType<any, keyof import("react").JSX.IntrinsicElements | import("react").JSXElementConstructor<any>, boolean | undefined, import("react").ReactNode> | undefined;
Page?: PageComponentType<any, import("react").ReactNode> | undefined;
} | undefined;
reuseHeadlessStreamId?: string | undefined;
headlessStreamElements?: Map<string, {
PageComponent: any;
errored: boolean;
}> | undefined;
signal?: AbortSignal | undefined;
staticManifest?: import("vite").Manifest | undefined;
serverManifest?: import("vite").Manifest | undefined;
clientManifest?: import("vite").Manifest | undefined;
rscWorker?: import("worker_threads").Worker | undefined;
htmlWorker?: import("worker_threads").Worker | undefined;
importedCss?: Set<string> | undefined;
rscStream?: import("stream").Readable | undefined;
htmlStream?: import("stream").Readable | undefined;
metrics?: import("../../types.js").StreamMetrics | undefined;
resolvedPageProps?: Record<string, unknown>;
dataPort: MessagePort;
controlPort: MessagePort;
options: Omit<import("../../types.js").CreateHandlerOptions<ResolvedUserOptions>, "onEvent" | "onMetrics" | "loader" | "build" | "autoDiscover" | "normalizer" | "moduleID" | "url" | "logger"> & {
cssFiles?: Map<string, import("../../types.js").CssContent>;
globalCss?: Map<string, import("../../types.js").CssContent>;
url?: string;
build: Omit<import("../../types.js").CreateHandlerOptions<ResolvedUserOptions>["build"], "entryFileNames" | "chunkFileNames" | "assetFileNames" | "pages"> & {
pages: string[];
};
PageComponent?: any;
pageProps?: any;
RootComponent?: any;
HtmlComponent?: any;
resolvedPageProps?: Record<string, unknown>;
};
type: "INIT";
id: string;
route: string;
pagePath: string;
propsPath: string | undefined;
rootPath: string | undefined;
htmlPath: string | undefined;
rootExportName: string;
htmlExportName: string;
pageExportName: string;
propsExportName: string;
projectRoot: string;
moduleRootPath: string;
moduleBaseURL: string;
moduleBasePath: string;
moduleBase: string;
serverPipeableStreamOptions: any;
verbose: boolean;
rscTimeout: number;
panicThreshold: import("../../types.js").PanicThreshold;
publicOrigin: string;
};
//# sourceMappingURL=hydrateRscRenderMessage.server.d.ts.map