UNPKG

@ordojs/core

Version:

Core compiler and runtime for OrdoJS framework

87 lines 2.26 kB
/** * @fileoverview OrdoJS Code Generator - Transforms AST into JavaScript and HTML */ import { type CompilationTarget, type ComponentAST, type GeneratedCode } from '../types/index.js'; import { type RPCGeneratorOptions } from './rpc-generator.js'; /** * Code generator options */ interface CodeGeneratorOptions { minify: boolean; sourceMaps: boolean; target: 'development' | 'production'; compilationTarget?: CompilationTarget; rpcOptions?: RPCGeneratorOptions; } /** * OrdoJS Code Generator * Transforms AST into JavaScript and HTML output */ export declare class OrdoJSCodeGenerator { private options; private componentId; private reactiveVars; private eventHandlers; private indentLevel; private sourceMap; private rpcGenerator; constructor(options?: Partial<CodeGeneratorOptions>); /** * Generate client-side JavaScript code from AST */ generateClientCode(ast: ComponentAST): string; /** * Generate server-side JavaScript code from AST */ generateServerCode(ast: ComponentAST): string; /** * Generate HTML template for server-side rendering */ generateHTML(ast: ComponentAST, initialProps?: Record<string, any>): string; /** * Generate complete code bundle */ generate(ast: ComponentAST): GeneratedCode; /** * Generate code for markup block */ private generateMarkupBlockCode; /** * Generate code for HTML element */ private generateElementCode; /** * Generate HTML for markup block */ private generateMarkupBlockHTML; /** * Generate HTML for element */ private generateElementHTML; /** * Generate code for expression */ private generateExpression; /** * Generate code for a statement */ private generateStatement; /** * Generate function parameters string */ private generateFunctionParameters; /** * Helper to generate indentation */ private indent; /** * Helper to escape string literals */ private escapeString; /** * Generate a unique ID for elements */ private generateUniqueId; } export {}; //# sourceMappingURL=code-generator.d.ts.map