renderStub function

String renderStub(
  1. String template,
  2. Map<String, String> values
)

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)!;
      },
    );