vite-plugin-react-server
Version:
Vite plugin for React Server Components (RSC)
70 lines • 2.74 kB
TypeScript
import type { CssContent, ResolvedUserOptions } from "../types.js";
import type { Logger } from "vite";
/**
* Unified CSS Processor
*
* PURPOSE: Consolidate CSS processing logic used across:
* - processCssFilesForPages (plugin.server.ts, plugin.client.ts)
* - RSC worker message handler (messageHandler.tsx)
* - HTML worker message handler
*
* This helper provides consistent CSS processing behavior across all environments
* and reduces code duplication.
*/
export interface UnifiedCssProcessorOptions {
/** User options for CSS processing */
userOptions: ResolvedUserOptions;
/** Logger for verbose output */
logger?: Logger;
/** Whether to enable verbose logging */
verbose?: boolean;
/** Static build output directory */
staticOutDir?: string;
/** Static manifest for CSS file resolution */
staticManifest?: any;
/** Bundle containing CSS files */
bundle?: any;
}
export interface CssProcessingResult {
/** CSS files organized by page/route */
cssFilesByPage: Map<string, Map<string, CssContent>>;
/** Global CSS files */
globalCss: Map<string, CssContent>;
/** Combined CSS files for a specific route */
combinedCssFiles: Map<string, CssContent>;
}
/**
* Processes CSS files from static build output
*
* @param cssInputs - CSS file inputs from manifest
* @param options - Processing options
* @returns Processed CSS content map
*/
export declare function processCssFromStaticBuild(cssInputs: Record<string, string>, options: UnifiedCssProcessorOptions): Map<string, CssContent>;
/**
* Combines CSS files from multiple sources
*
* @param sources - Array of CSS file maps to combine
* @returns Combined CSS file map
*/
export declare function combineCssFiles(...sources: Array<Map<string, CssContent> | undefined>): Map<string, CssContent>;
/**
* Processes inline CSS content for stateful systems
*
* @param cssFiles - CSS files map
* @param addCssFileContent - Function to add CSS content to state
* @param userOptions - User options
*/
export declare function processInlineCssForState(cssFiles: Map<string, CssContent>, addCssFileContent: (id: string, content: string, userOptions: ResolvedUserOptions) => void, userOptions: ResolvedUserOptions): void;
/**
* Creates a unified CSS processor instance
*
* @param options - Processing options
* @returns CSS processor functions
*/
export declare function createUnifiedCssProcessor(options: UnifiedCssProcessorOptions): {
processCssFromStaticBuild: (cssInputs: Record<string, string>) => Map<string, CssContent>;
combineCssFiles: typeof combineCssFiles;
processInlineCssForState: typeof processInlineCssForState;
};
//# sourceMappingURL=createUnifiedCssProcessor.d.ts.map