renderStub function
Renders template, replacing every {{ key }} from values.
Unknown placeholders are left untouched so mistakes stay visible.
Implementation
String renderStub(String template, Map<String, String> values) =>
template.replaceAllMapped(
RegExp(r'\{\{\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}'),
(match) {
final key = match.group(1)!;
return values[key] ?? match.group(0)!;
},
);