writeData method

void writeData(
  1. int indent,
  2. Map<String, dynamic> data
)

Implementation

void writeData(int indent, Map<String, dynamic> data) {
  data.forEach((key, value) {
    if (value is String) {
      writeAsString(indent, key, value);
    } else if (value is List) {
      if ((value).isNotEmpty) {
        writeName(indent, key);
        for (var index = 0; index < value.length; index++) {
          var item = (value)[index];
          writeArrayItem(indent + 1, item);
        }
      }
    } else if (value is Map) {
      var values = List.from(value.values);
      if (values.indexWhere((dynamic item) {
            return item != null;
          }) >=
          0) {
        writeName(indent, key);
        writeData(indent + 1, (value as Map<String, dynamic>));
      }
    } else {
      writeAsObject(indent, key, value);
    }
  });
}