const VAR_RE = /\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g export function parseVars(template) { const seen = new Set() const vars = [] let m VAR_RE.lastIndex = 0 while ((m = VAR_RE.exec(template)) !== null) { if (!seen.has(m[1])) { seen.add(m[1]) vars.push(m[1]) } } return vars } export function fillTemplate(template, values) { return template.replace(/\{\{([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g, (_, k) => values[k] ?? `{{${k}}}`) }