@composableai/cli
Version:
Code generation for the interaction defined with Composable AI Studio
28 lines • 851 B
JavaScript
import { readFileSync } from 'fs';
import { packageDir } from '../package.js';
const EXPR_RX = /\{\{\s*[a-zA-Z_][a-zA-Z_0-9]*\s*\}\}/g;
const TEMPLATES = {};
export function expandVariables(template, vars) {
return template.replace(EXPR_RX, (match) => {
const key = match.substring(2, match.length - 2).trim();
if (key in vars) {
return vars[key] || '';
}
else {
return match;
}
});
}
function loadTemplate(name) {
let content = TEMPLATES[name];
if (!content) {
content = readFileSync(`${packageDir}/templates/${name}.tpl`, 'utf8');
TEMPLATES[name] = content;
}
return content;
}
export function processTemplate(name, vars) {
const content = loadTemplate(name);
return expandVariables(content, vars);
}
//# sourceMappingURL=template.js.map