/**
 * Substitui {{var}} por valor em qualquer string.
 *
 * Uso:
 *   interpolate("Oi {{nome}}!", { nome: "Tata" })
 *   → "Oi Tata!"
 *
 * Nao falha se variavel ausente — substitui por string vazia.
 */

const VAR_REGEX = /\{\{(\w+)\}\}/g;

export function interpolate(
  template: string,
  vars: Record<string, string>,
): string {
  return template.replace(VAR_REGEX, (_match, key: string) => {
    return vars[key] ?? "";
  });
}

export function findUsedVars(template: string): string[] {
  const found = new Set<string>();
  for (const match of template.matchAll(VAR_REGEX)) {
    found.add(match[1]!);
  }
  return [...found];
}
