general_lib_utils_removeRecursiveValueNullOrEmpty method

void general_lib_utils_removeRecursiveValueNullOrEmpty()

Implementation

void general_lib_utils_removeRecursiveValueNullOrEmpty() {
  removeWhere((key, value) {
    if (value == null) {
      return true;
    }

    if (value is String && value.isEmpty) {
      return true;
    }
    if (value is List && value.isEmpty) {
      return true;
    }
    if (value is Map && value.isEmpty) {
      return true;
    }
    if (value is List && value.isEmpty) {
      return true;
    }

    if (value is Map) {
      if (value.isEmpty) {
        return false;
      } else {
        value.general_lib_utils_removeRecursiveValueNullOrEmpty();
      }
    } else if (value is JsonScheme) {
      if (value.rawData.isEmpty) {
        return true;
      } else {
        value.rawData.general_lib_utils_removeRecursiveValueNullOrEmpty();
      }
    }
    if (value is List) {
      if (value.isEmpty) {
        return true;
      } else {
        if (value is List<Map>) {
          for (var element in value) {
            element.general_lib_utils_removeRecursiveValueNullOrEmpty();
          }
        } else if (value is List<JsonScheme>) {
          for (var element in value) {
            element.rawData
                .general_lib_utils_removeRecursiveValueNullOrEmpty();
          }
        }
      }
    }
    return false;
  });
}