render method

Object? render(
  1. Object? value, {
  2. TemplateContext context = const TemplateContext(),
})

Recursively renders placeholders within strings, maps, and lists.

Implementation

Object? render(Object? value,
    {TemplateContext context = const TemplateContext()}) {
  if (value is Map<String, Object?>) {
    return value.map(
      (key, nestedValue) =>
          MapEntry(key, render(nestedValue, context: context)),
    );
  }
  if (value is Map) {
    return value.map(
      (key, nestedValue) => MapEntry(
        key.toString(),
        render(nestedValue, context: context),
      ),
    );
  }
  if (value is List<Object?>) {
    return value
        .map((item) => render(item, context: context))
        .toList(growable: false);
  }
  if (value is String) {
    return _renderString(value, context);
  }
  return value;
}