apply method

  1. @override
Future<String> apply(
  1. String content,
  2. Map<String, dynamic> context
)
override

Implementation

@override
Future<String> apply(String content, Map<String, dynamic> context) async {
  return content.replaceAllMapped(_hasRegex, (match) {
    final arrayExpr = match.group(1)!.trim();
    final keyExpr = match.group(2)!.trim();
    final body = match.group(3)!;

    try {
      final array = _evaluate(arrayExpr, context);
      final key = _evaluate(keyExpr, context);

      final hasKey = _hasKey(array, key);

      return hasKey ? body : '';
    } catch (_) {
      return '';
    }
  });
}