vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
51 lines • 2 kB
TypeScript
import type { Logger } from "vite";
import type { ModuleRunner } from "vite/module-runner";
import type { InputNormalizer } from "../types.js";
/**
* Shared loader utility that both RSC worker loader and build loader can use.
*
* This handles the common pattern:
* 1. Parse id to get moduleId and exportName
* 2. Handle virtual modules and node_modules (via resolveVirtualAndNodeModules)
* 3. Try manifest-based resolution (build mode)
* 4. Import the module
* 5. Validate exports
*
* If the result is already a module object (not a Promise), it's returned directly.
* This allows loaders to reuse already-loaded modules.
*
* @param options - Loader configuration options
* @returns The resolved module (already a module object, not a Promise)
*/
export declare function createSharedLoader({ moduleId, exportName, verbose, logger, resolveVirtual, manifest, normalizer, moduleBase, preserveModulesRoot, projectRoot, buildOutDir, buildServerDir, isBuildMode, isServeMode: _isServeMode, effectiveProjectRoot, build, moduleRunner, }: {
moduleId: string;
exportName?: string;
verbose?: boolean;
logger?: Logger;
resolveVirtual?: boolean;
manifest?: Record<string, {
file: string;
} | undefined>;
normalizer?: InputNormalizer;
moduleBase?: string;
preserveModulesRoot?: boolean;
projectRoot?: string;
buildOutDir?: string;
buildServerDir?: string;
isBuildMode?: boolean;
isServeMode?: boolean;
effectiveProjectRoot?: string;
build?: {
server?: string;
client?: string;
static?: string;
outDir?: string;
};
/**
* Optional Vite ModuleRunner. When provided in dev:ssr mode the worker
* pulls project source through Vite's runner instead of Node's native
* import(), so file edits invalidate per-module without a worker restart.
*/
moduleRunner?: ModuleRunner | null;
}): Promise<Record<string, any>>;
//# sourceMappingURL=createSharedLoader.d.ts.map