@ordojs/core
Version:
Core compiler and runtime for OrdoJS framework
87 lines • 2.26 kB
TypeScript
/**
* @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