EngineMessage.fromJson constructor

EngineMessage.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory EngineMessage.fromJson(Map<String, dynamic> json) {
  final type = json['type'] as String? ?? '';
  final id = json['id'] as String? ?? '';
  switch (type) {
    case 'log':
      return LogMessage(
        id: id,
        level: json['level'] as String? ?? 'info',
        message: json['message'] as String? ?? '',
      );
    case 'progress':
      return ProgressMessage(
        id: id,
        pack: json['pack'] as String? ?? '',
        step: json['step'] as int? ?? 0,
        total: json['total'] as int? ?? 0,
      );
    case 'plan_item':
      return PlanItemMessage(
        id: id,
        action: json['action'] as String? ?? '',
        path: json['path'] as String? ?? '',
        pack: json['pack'] as String? ?? '',
      );
    case 'done':
      return DoneMessage(
        id: id,
        status: json['status'] as String? ?? 'ok',
      );
    default:
      return EngineMessage(id: id, type: type);
  }
}