vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
89 lines • 2.5 kB
TypeScript
export type StreamMetrics = {
chunks: number;
bytes: number;
backpressureCount: number;
errorCount: number;
duration: number;
startTime: number;
endTime?: number;
route?: string;
};
export type CreateRenderMetricsFn = <T extends "html" | "rsc-headless" | "rsc-full">(metrics: {
route: string;
type: T;
fromMainThread: boolean;
fromRscWorker: boolean;
fromHtmlWorker: boolean;
processingTime?: number;
chunks?: number;
chunkRate?: number;
memoryUsage?: NodeJS.MemoryUsage;
streamMetrics?: StreamMetrics;
fileSize?: number;
fileName?: string;
outputPath?: string;
baseDir?: string;
routePath?: string;
}) => RenderMetrics<T>;
export type BaseRenderMetrics = {
route: string;
fromMainThread: boolean;
fromRscWorker: boolean;
fromHtmlWorker: boolean;
processingTime: number;
chunks: number;
chunkRate: number;
memoryUsage: NodeJS.MemoryUsage;
streamMetrics: StreamMetrics;
streamType?: string;
description?: string;
};
export type RenderMetrics<T extends "html" | "rsc-headless" | "rsc-full" = "html" | "rsc-headless" | "rsc-full"> = {
type: T;
} & (T extends "html" | "rsc-headless" ? BaseRenderMetrics & {
fileSize: number;
fileName: string;
outputPath: string;
baseDir: string;
routePath: string;
} : T extends "rsc-full" ? BaseRenderMetrics & {
fileSize?: never;
fileName?: never;
outputPath?: never;
baseDir?: never;
routePath?: never;
} : BaseRenderMetrics & {
fileSize?: number;
fileName?: string;
outputPath?: string;
baseDir?: string;
routePath?: string;
});
export type WorkerStartupMetrics = {
route: string;
type: "worker-startup";
workerType: "rsc" | "html";
startupTime: number;
fromMainThread: boolean;
fromRscWorker: boolean;
fromHtmlWorker: boolean;
memoryUsage: NodeJS.MemoryUsage;
description?: string;
fileSize?: never;
processingTime?: never;
};
export type ModuleResolutionMetrics = {
route: string;
type: "module-resolution";
workerType: "rsc" | "html" | "mainThread";
startupTime?: never;
resolutionTime: number;
fromMainThread: boolean;
fromRscWorker: boolean;
fromHtmlWorker: boolean;
memoryUsage: NodeJS.MemoryUsage;
description?: string;
fileSize?: never;
};
export type CreateStreamMetricsFn = (metrics?: Partial<StreamMetrics>) => StreamMetrics;
//# sourceMappingURL=types.d.ts.map