resolveEntitySourceValueVariables method

Object? resolveEntitySourceValueVariables(
  1. String key,
  2. Object? value,
  3. Map<String, dynamic> variables
)

Implementation

Object? resolveEntitySourceValueVariables(
    String key, Object? value, Map<String, dynamic> variables) {
  if (value == null) return null;

  if (variables.isEmpty) {
    return value;
  }

  if (value is String) {
    if (value.startsWith('%') && value.endsWith('%')) {
      var varName = value.substring(1, value.length - 1);
      var varValue = variables[varName] ?? value;
      return varValue;
    } else {
      return value;
    }
  } else if (value is num || value is bool) {
    return value;
  } else if (value is Map) {
    if (value is Map<String, dynamic>) {
      return value.map((k, v) {
        var val = resolveEntitySourceValueVariables(k, v, variables);
        return MapEntry<String, dynamic>(k, val);
      });
    } else {
      return value.map((k, v) {
        var val = resolveEntitySourceValueVariables(k, v, variables);
        return MapEntry(k, val);
      });
    }
  } else if (value is List) {
    return value.map((e) {
      var val = resolveEntitySourceValueVariables(key, e, variables);
      return val;
    }).toList();
  } else {
    return value;
  }
}