Plantillas de prompt sin sorpresas
Rellena {{variables}} en un prompt, falla si falta alguna y evita que el texto del usuario abra o cierre marcadores de la plantilla.
Escribe fillTemplate(template, vars). Cada {{nombre}} (con espacios opcionales, como {{ nombre }}) se sustituye por String(vars.nombre). Si una variable de la plantilla no existe en vars, lanza un error cuyo mensaje incluya su nombre. Ojo: 0 y '' son valores válidos.
Los valores vienen del usuario, así que elimina de ellos las secuencias {{ y }} antes de insertarlos. Haz una sola pasada: el texto insertado nunca se vuelve a interpretar como plantilla.
TEMPLATE y INPUT ya están definidos.
Retos 0/4
- Rellena todas las variables, también con espacios
- Sustituye una variable repetida y acepta 0
- Lanza un error que nombra la variable que falta
- Neutraliza {{ y }} en los valores y no los reinterpreta
function fillTemplate(template, vars) {
// sustituye cada {{ nombre }}; lanza un error si falta alguno; quita {{ y }} de los valores
let out = template;
for (const [key, value] of Object.entries(vars)) {
out = out.replace('{{' + key + '}}', value);
}
return out;
}
console.log(fillTemplate(TEMPLATE, INPUT));Para profundizar: la herramienta relacionada →
¿Esto en producción, con tus datos? Hablemos 15 minutos →