formatSpecialFieldValues static method

void formatSpecialFieldValues(
  1. dynamic object, {
  2. dynamic parent,
  3. dynamic field,
})

Format a special value ex. createdAt: {$date: 1598804210504} become createdAt: DateTime Instance 2020-08-30 23:15:57.471

Implementation

static void formatSpecialFieldValues(
  dynamic object, {
  dynamic parent,
  dynamic field,
}) {
  if (object is Map<dynamic, dynamic>) {
    object.forEach((k, v) {
      if (v is Map || v is List) {
        DdpClient.formatSpecialFieldValues(v, parent: object, field: k);
      } else if (k == '\$date') {
        if (parent != null && field != null) {
          parent[field] = DateTime.fromMillisecondsSinceEpoch(v);
          return parent[field];
        }
      }
    });
  } else if (object is List) {
    object.asMap().forEach((idx, subObject) {
      formatSpecialFieldValues(subObject, parent: object, field: idx);
    });
  }
}