ivi
Version:
Lightweight Embeddable Web UI Library.
43 lines • 1.31 kB
TypeScript
import { TemplateFlags } from "../lib/template.js";
import { type ITemplate } from "./ir.js";
export interface TemplateCompilationArtifact {
/** Root Nodes */
readonly roots: TemplateNode[];
}
export declare enum TemplateNodeType {
Block = 0,
Text = 1,
Expr = 2
}
export interface TemplateNodeBlock {
/** Node type */
readonly type: TemplateNodeType.Block;
/** Template Flags */
readonly flags: TemplateFlags;
/** Static Template */
readonly template: (string | number)[] | string;
/** Prop OpCodes */
readonly props: number[];
/** Child OpCodes */
readonly child: number[];
/** State OpCodes */
readonly state: number[];
/** Data */
readonly data: string[];
/** Dynamic Expressions */
readonly exprs: number[];
}
export interface TemplateNodeText {
readonly type: TemplateNodeType.Text;
readonly value: string;
}
export interface TemplateNodeExpr {
readonly type: TemplateNodeType.Expr;
readonly value: number;
}
export type TemplateNode = TemplateNodeBlock | TemplateNodeText | TemplateNodeExpr;
export declare const compileTemplate: (tpl: ITemplate) => TemplateCompilationArtifact;
export declare class TemplateCompilerError extends Error {
constructor(msg: string);
}
//# sourceMappingURL=compiler.d.ts.map