interpolate static method

String interpolate(
  1. String text,
  2. Map<String, dynamic>? formData
)

Replaces {{data.key}} patterns in text with values from formData. Supports nested keys using dot notation (e.g., data.user.name).

Implementation

static String interpolate(String text, Map<String, dynamic>? formData) {
  if (text.isEmpty || formData == null) return text;

  final regExp = RegExp(r'\{\{\s*data\.([a-zA-Z0-9._]+)\s*\}\}');
  return text.replaceAllMapped(regExp, (match) {
    final key = match.group(1);
    if (key == null) return match.group(0)!;

    final value = getPathValue(formData, key);
    return value?.toString() ?? '';
  });
}