UNPKG

meld

Version:

Meld: A template language for LLM prompts

77 lines (59 loc) 1.68 kB
import type { MeldNode } from 'meld-spec'; export class InterpreterState { private nodes: MeldNode[] = []; private textVars: Map<string, string> = new Map(); private dataVars: Map<string, any> = new Map(); private commands: Map<string, string> = new Map(); private imports: Set<string> = new Set(); addNode(node: MeldNode): void { this.nodes.push(node); } getNodes(): MeldNode[] { return this.nodes; } setText(name: string, value: string): void { this.textVars.set(name, value); } getText(name: string): string | undefined { return this.textVars.get(name); } setData(name: string, value: any): void { this.dataVars.set(name, value); } getData(name: string): any { return this.dataVars.get(name); } setCommand(name: string, command: string): void { this.commands.set(name, command); } getCommand(name: string): string | undefined { return this.commands.get(name); } addImport(path: string): void { this.imports.add(path); } hasImport(path: string): boolean { return this.imports.has(path); } getAllTextVars(): Map<string, string> { return new Map(this.textVars); } getAllDataVars(): Map<string, any> { return new Map(this.dataVars); } getAllCommands(): Map<string, string> { return new Map(this.commands); } getTextVar(name: string): string | undefined { return this.textVars.get(name); } setTextVar(name: string, value: string): void { this.textVars.set(name, value); } getDataVar(name: string): any { return this.dataVars.get(name); } setDataVar(name: string, value: any): void { this.dataVars.set(name, value); } }