vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
156 lines • 5.88 kB
TypeScript
import type { Logger } from "vite";
import type { CreateHandlerOptions, CssContent, RenderMetrics, ResolvedUserOptions, SerializableRecord } from "../../types.js";
import type { WorkerMessage, ErrorMessage, ShellReadyMessage, AllReadyMessage, ShutdownCompleteMessage, HmrAcceptMessage, ReadyMessage, ServerActionMessage, ServerActionResponseMessage, CleanupCompleteMessage, ShutdownMessage, AbortMessage, StreamHandlers } from "../types.js";
import type { PassThrough } from "node:stream";
export type HandleRscRenderOptions = {
id: string;
route: string;
url: string;
verbose?: boolean;
htmlPath?: string;
HtmlComponent?: any;
rscTimeout?: number;
logger?: Logger;
stream?: PassThrough;
moduleBasePath: string;
moduleBaseURL: string;
moduleRootPath: string;
[key: string]: any;
};
export type HandleRscRenderFn = <Opt extends HandleRscRenderOptions = HandleRscRenderOptions>(options: Opt, handlers: StreamHandlers<"server">, overrideStream?: PassThrough, headlessStreamElements?: Map<string, any>, headlessStreamErrors?: Map<string, Error>) => void;
export type SerializeableRenderToPipeableStreamOptions = SerializableRecord;
export type RscRenderState = {
id: string;
outDir: string;
moduleRootPath: string;
moduleBaseURL: string;
rscOutputPath: string;
componentImport: string;
propsImport: string;
serverPipeableStreamOptions: SerializableRecord;
};
export type RscRenderStartMessage = {
type: "RSC_RENDER_START";
id: string;
};
export type RscChunkOutputMessage = WorkerMessage & {
type: "RSC_CHUNK";
id: string;
chunk: Uint8Array;
sequence?: number;
};
export type RscEndMessage = {
type: "RSC_END";
id: string;
} & WorkerMessage;
export type RscMetricsMessage = {
type: "RSC_METRICS";
id: string;
metrics: RenderMetrics & {
type: "rsc-full" | "rsc-headless";
};
} & WorkerMessage;
export type CssFileMessage = {
type: "CSS_FILE";
id: string;
content: string;
moduleClasses?: Record<string, string>;
originalClasses?: Record<string, string>;
usedClasses?: string[];
};
export type ShellErrorMessage = {
type: "SHELL_ERROR";
id: string;
error: unknown;
} & WorkerMessage;
export type RscWorkerOutputMessage = RscRenderStartMessage | RscChunkOutputMessage | RscEndMessage | ShellReadyMessage | AllReadyMessage | ErrorMessage | ShellErrorMessage | CssFileMessage | RscMetricsMessage | HmrAcceptMessage | ReadyMessage | ServerActionMessage | ServerActionResponseMessage | ShutdownCompleteMessage | CleanupCompleteMessage | ComponentsResolvedMessage | ServerModuleMessage | HmrUpdateMessage | HmrCleanupMessage;
export type RscRenderOpt = WorkerMessage & {
type: "INIT";
id: string;
dataPort: MessagePort;
controlPort: MessagePort;
options: Omit<CreateHandlerOptions<ResolvedUserOptions>, "onEvent" | "onMetrics" | "loader" | "build" | "autoDiscover" | "normalizer" | "moduleID" | "url" | "logger"> & {
cssFiles?: Map<string, CssContent>;
globalCss?: Map<string, CssContent>;
url?: string;
build: Omit<CreateHandlerOptions<ResolvedUserOptions>["build"], "entryFileNames" | "chunkFileNames" | "assetFileNames" | "pages"> & {
pages: string[];
};
PageComponent?: any;
pageProps?: any;
RootComponent?: any;
HtmlComponent?: any;
resolvedPageProps?: Record<string, unknown>;
};
};
export type RscRenderMessage<Opt extends RscRenderOpt = RscRenderOpt> = Opt;
export type ChunkProcessedMessage = {
type: "CHUNK_PROCESSED";
success: boolean;
sequence?: number;
} & WorkerMessage;
export type ClientComponentMessage = {
type: "CLIENT_COMPONENT";
url: string;
source: string;
} & WorkerMessage;
export type InitializedReactLoaderMessage = {
type: "INITIALIZED_REACT_LOADER";
id: string;
} & WorkerMessage;
export type InitializedCssLoaderMessage = {
type: "INITIALIZED_CSS_LOADER";
id: string;
} & WorkerMessage;
export type ModuleRequestMessage = {
type: "MODULE_REQUEST";
id: string;
path: string;
} & WorkerMessage;
export type InitializedRscWorkerLoaderMessage = {
type: "INITIALIZED_RSC_WORKER_LOADER";
id: string;
} & WorkerMessage;
export type InitializedEnvLoaderMessage = {
type: "INITIALIZED_ENV_LOADER";
id: string;
env: Record<string, string>;
} & WorkerMessage;
export type HmrUpdateMessage = {
type: "HMR_UPDATE";
routes?: string[];
timestamp?: number;
} & WorkerMessage;
export type HmrCleanupMessage = {
type: "HMR_CLEANUP";
routes?: string[];
timestamp?: number;
} & WorkerMessage;
export type ServerModuleMessage = {
type: "SERVER_MODULE";
url: string;
source: string;
} & WorkerMessage;
export type ResolveComponentsMessage = {
type: "RESOLVE_COMPONENTS";
id: string;
route: string;
streamType: "rsc";
rscVariant: "rsc-headless" | "rsc-full";
pagePath?: string;
propsPath?: string;
rootPath?: string;
htmlPath?: string;
pageExportName?: string;
propsExportName?: string;
rootExportName?: string;
htmlExportName?: string;
} & WorkerMessage;
export type ComponentsResolvedMessage = {
type: "COMPONENTS_RESOLVED";
id: string;
route: string;
resolutionTime: number;
} & WorkerMessage;
export type RscWorkerInputMessage = RscRenderMessage | CssFileMessage | ShutdownMessage | ChunkProcessedMessage | ClientComponentMessage | InitializedReactLoaderMessage | InitializedCssLoaderMessage | ModuleRequestMessage | InitializedRscWorkerLoaderMessage | InitializedEnvLoaderMessage | HmrUpdateMessage | HmrAcceptMessage | HmrCleanupMessage | CleanupCompleteMessage | ServerActionMessage | ServerActionResponseMessage | ServerModuleMessage | AbortMessage | ResolveComponentsMessage;
//# sourceMappingURL=types.d.ts.map