removeNulls method

dynamic removeNulls(
  1. dynamic params
)

Recursively removes null values from a data structure.

params is the input data structure (Map, List, or primitive). Returns a cleaned version of params with all null values removed. If the result is empty, returns null.

Implementation

dynamic removeNulls(dynamic params) {
  if (params is Map) {
    final map = {};
    params.forEach((key, value) {
      final value0 = removeNulls(value);
      if (value0 != null) {
        map[key] = value0;
      }
    });
    if (map.isNotEmpty) {
      return map;
    }
  } else if (params is List) {
    final list = [];
    for (final val in params) {
      final value = removeNulls(val);
      if (value != null) {
        list.add(value);
      }
    }
    if (list.isNotEmpty) return list;
  } else if (params != null) {
    return params;
  }
  return null;
}