named method

W<Map<String, dynamic>> named(
  1. String tag,
  2. dynamic naMap,
  3. Map? methodMap,
  4. BuildContext context,
  5. Domain? domain,
)

Implementation

W<Map<String, dynamic>> named(
  String tag,
  dynamic naMap,
  Map? methodMap,
  BuildContext context,
  Domain? domain,
) {
  var na = <String, dynamic>{};
  var needBinding = false;
  if (naMap is Map) {
    naMap.entries.forEach((e) {
      if (e.value is Map) {
        na[e.key] = namedMap(tag, naMap, methodMap, context, domain, e);
      } else if (e.value is List) {
        na[e.key] =
            namedList(tag, naMap, methodMap, context, domain, e.value);
      } else if (domain != null && domain.match(e)) {
        na[e.key] = domain.bindValue(e as String);
      } else if (domain != null && e is MapEntry && domain.match(e.value)) {
        na[e.key] = domain.bindValue(e.value);
      } else if (e.value is String) {
        var w = namedString(tag, naMap, methodMap, context, domain, e.value);
        needBinding = w.binding ?? false;
        na[e.key] = w.data;
      } else {
        na[e.key] = e.value;
      }
    });
  }
  na['\$'] = context;
  return W<Map<String, dynamic>>(na, needBinding);
}