map static method

List map(
  1. dynamic mapOrList,
  2. dynamic callback(
    1. Data,
    2. dynamic
    )
)

Implementation

static List<dynamic> map(
  dynamic mapOrList,
  dynamic Function(Data, dynamic) callback,
) {
  List<dynamic> result = [];
  if (mapOrList is Data) mapOrList = mapOrList.value;
  if (mapOrList is List || mapOrList is String) {
    for (var i = 0; i < mapOrList.length; i++) {
      result.add(
        callback(
          Data(i.toString()),
          mapOrList[i] is Data ? mapOrList[i] : Data(mapOrList[i]),
        ),
      );
    }
  } else if (mapOrList is Map) {
    for (final key in mapOrList.keys) {
      result.add(
        callback(
          (key is Data ? key : Data(key.toString())),
          mapOrList[key] is Data ? mapOrList[key] : Data(mapOrList[key]),
        ),
      );
    }
  } else if (mapOrList is num) {
    for (var i = 0; i < mapOrList; i++) {
      result.add(callback(Data(i.toString()), Data(i)));
    }
  }
  return result;
}