formDataToMap static method

Map<String, dynamic> formDataToMap(
  1. FormData formData
)

Implementation

static Map<String, dynamic> formDataToMap(FormData formData) {
  final fields = <String, dynamic>{};
  for (final entry in formData.fields) {
    final existing = fields[entry.key];
    if (existing == null) {
      fields[entry.key] = entry.value;
    } else if (existing is List) {
      existing.add(entry.value);
    } else {
      fields[entry.key] = <dynamic>[existing, entry.value];
    }
  }

  final files = <Map<String, dynamic>>[];
  for (final entry in formData.files) {
    files.add(<String, dynamic>{
      'field': entry.key,
      'filename': entry.value.filename,
      'contentType': entry.value.contentType?.toString(),
      'size': humanBytes(entry.value.length),
    });
  }

  return <String, dynamic>{
    if (fields.isNotEmpty) 'fields': fields,
    if (files.isNotEmpty) 'files': files,
  };
}