jsonEach function

Future<Map> jsonEach({
  1. required Map data,
  2. required Future builder(
    1. dynamic key,
    2. dynamic value,
    3. bool isList,
    4. bool isMapInList,
    ),
})

Implementation

Future<Map> jsonEach({
  required Map data,
  required Future<dynamic> Function(
          dynamic key, dynamic value, bool isList, bool isMapInList)
      builder,
}) async {
  Map jsonData = {};

  for (var element in data.entries) {
    dynamic key = element.key;
    dynamic value = element.value;

    if (value is Map) {
      jsonData[key] = await jsonEach(data: value, builder: builder);
    } else if (value is List) {
      jsonData[key] =
          await jsonListEach(key: key, data: value, builder: builder);
    } else {
      jsonData[key] = await builder(key, value, false, false);
    }
  }

  return jsonData;
}