buildNodeMap static method

Map buildNodeMap(
  1. dynamic input
)

Implementation

static Map buildNodeMap(dynamic input) {
  Map create(dynamic value) {
    if (value is Map) {
      var m = <String, dynamic>{r'$is': 'json'};

      for (String key in value.keys) {
        m[NodeNamer.createName(key)] = create(value[key]);
      }

      return m;
    } else if (value is List &&
        value.every((dynamic e) => e is Map || e is List)) {
      var m = <String, dynamic>{};
      for (var i = 0; i < value.length; i++) {
        m[i.toString()] = create(value[i]);
      }
      return m;
    } else {
      return <String, dynamic>{
        r'$is': 'json',
        r'$type': _guessType(value),
        '?_json': value,
      };
    }
  }

  return create(input);
}