fix: prevent $ interpolation in renderTemplate replacement

This commit is contained in:
2026-07-12 13:04:58 +08:00
parent de1bca9d8a
commit 29356bd530

View File

@@ -35,8 +35,9 @@ function renderTemplate(template, vars) {
let { subject, body } = template; let { subject, body } = template;
for (const [k, v] of Object.entries(vars)) { for (const [k, v] of Object.entries(vars)) {
const re = new RegExp(`\\{\\{${k}\\}\\}`, 'g'); const re = new RegExp(`\\{\\{${k}\\}\\}`, 'g');
subject = subject.replace(re, v || ''); const val = String(v ?? '');
body = body.replace(re, v || ''); subject = subject.replace(re, () => val);
body = body.replace(re, () => val);
} }
return { subject, body }; return { subject, body };
} }