filterEmptyEntries static method

Map<String, dynamic> filterEmptyEntries(
  1. Map<String, dynamic> input
)

Implementation

static Map<String, dynamic> filterEmptyEntries(Map<String, dynamic> input) {
  final filtered = <String, dynamic>{};
  input.forEach((key, value) {
    if (value is Map<String, dynamic>) {
      // Recursively filter nested maps
      final nestedFiltered = filterEmptyEntries(value);
      if (nestedFiltered.isNotEmpty) {
        filtered[key] = nestedFiltered;
      }
    } else if (value is List) {
      // Filter lists recursively
      final filteredList = value
          .map((item) => item is Map<String, dynamic> ? filterEmptyEntries(item) : item)
          .where((item) => item != null && item.toString().trim().isNotEmpty)
          .toList();
      if (filteredList.isNotEmpty) {
        filtered[key] = filteredList;
      }
    } else if (value != null && value.toString().trim().isNotEmpty) {
      // Add non-empty primitive values
      filtered[key] = value;
    }
  });
  return filtered;
}