UNPKG

mcp-web-ui

Version:

Ultra-lightweight vanilla JavaScript framework for MCP servers - Zero dependencies, perfect security, 2-3KB bundle size

69 lines 2 kB
/** * 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