vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
66 lines • 2.84 kB
TypeScript
import type { RawSourceMap } from "source-map";
import type { DirectiveWarning, ParseResult, Program, AllowedDirectives, ParsedExports } from "react-server-loader/directives";
import type { Logger } from "vite";
import type { PanicThreshold } from "../types.js";
export type LoaderConfig = {
serverDirective: RegExp;
clientDirective: RegExp;
directivePattern: RegExp;
allowedDirectives: AllowedDirectives;
getDirectiveType: (directive: string, moduleId?: string) => "client" | "server" | undefined;
mode?: "development" | "production" | "test" | undefined;
importServerPath?: string;
importClientPath?: string;
registerClientReferenceName?: string;
registerServerReferenceName?: string;
isServerFunctionCode: (code: string, moduleId?: string, transformedModuleId?: string) => boolean;
isClientComponentCode: (code: string, moduleId?: string, transformedModuleId?: string) => boolean;
isClientComponentByCode: (code: string) => boolean;
isClientComponentByName: (moduleId: string, transformedModuleId?: string) => boolean;
moduleID: (moduleId: string, sourceContent?: string, isClientByDirective?: boolean) => string;
parse: ParseFn;
verbose?: boolean;
logger?: Logger;
};
export type RscLoader = Pick<LoaderConfig, 'importServerPath' | 'importClientPath' | 'registerClientReferenceName' | 'registerServerReferenceName'>;
export type ParseFn = (source: string) => Program | {
ast: Program;
code?: string;
map?: any;
exports?: ParsedExports;
} | Promise<Program | {
ast: Program;
code?: string;
map?: any;
exports?: ParsedExports;
}>;
export type TransformOptions = {
forceServerFunction?: boolean;
forceClientComponent?: boolean;
isServerEnvironment?: boolean;
loader?: LoaderConfig;
directiveWarnings?: DirectiveWarning[];
removeDirectives?: number[];
addDirectives?: number[];
verbose?: boolean;
panicThreshold?: PanicThreshold;
mode?: "development" | "production" | "test";
logger?: Logger;
moduleBase?: string;
};
export type TransformResult = {
code: string;
map: RawSourceMap | null;
};
export type TransformFunction = (source: string, moduleId: string, transformedModuleId: string, parseResult: ParseResult, options: TransformOptions) => Promise<TransformResult>;
export type TransformerFactory = (options: {
parseFn?: ParseFn;
options: Pick<TransformOptions, 'verbose' | 'loader' | 'panicThreshold' | 'logger' | 'moduleBase'>;
forceServerFunction?: boolean | undefined;
forceClientComponent?: boolean | undefined;
isServerEnvironment?: boolean;
ssr?: boolean;
originalModuleId?: string;
}) => (source: string, moduleId: string, transformedModuleId?: string) => Promise<TransformResult>;
export type { Program };
//# sourceMappingURL=types.d.ts.map