mcp-web-ui
Version:
Ultra-lightweight vanilla JavaScript framework for MCP servers - Zero dependencies, perfect security, 2-3KB bundle size
69 lines • 2 kB
TypeScript
/**
* TemplateEngine - Modular, configuration-driven template rendering
* Replaces hardcoded template rendering in UIServer with flexible, extensible approach
*/
import { UIServerConfig } from './UIServerConfig.js';
import { ResourceManager, LoadedResources } from './ResourceManager.js';
import { UISchema, TemplateData } from '../types/index.js';
export interface TemplateContext {
schema: UISchema;
session: any;
resources: LoadedResources;
config: any;
nonce: string;
initialData?: any[];
}
export interface TemplateRenderer {
name: string;
canRender(context: TemplateContext): boolean;
render(context: TemplateContext): string;
}
/**
* Base template for vanilla JS framework
*/
export declare class VanillaTemplateRenderer implements TemplateRenderer {
name: string;
canRender(context: TemplateContext): boolean;
render(context: TemplateContext): string;
private renderPreloads;
private renderCSS;
private renderInlineStyles;
private renderBody;
private renderComponentContainers;
private renderJavaScript;
private renderInitScript;
private escapeHtml;
private safeJsonStringify;
}
/**
* Main TemplateEngine with pluggable renderers
*/
export declare class TemplateEngine {
private config;
private resourceManager;
private renderers;
constructor(config: UIServerConfig, resourceManager: ResourceManager);
/**
* Register a template renderer
*/
registerRenderer(renderer: TemplateRenderer): void;
/**
* Render template using appropriate renderer
*/
render(templateData: TemplateData): Promise<string>;
/**
* Find the best renderer for the context
*/
private findRenderer;
/**
* Load custom renderers from configuration
*/
private loadCustomRenderers;
/**
* Render error page
*/
private renderErrorPage;
private escapeHtml;
private generateNonce;
}
//# sourceMappingURL=TemplateEngine.d.ts.map