parse<T extends INetworkModel<T>, R> method

Future<R> parse<T extends INetworkModel<T>, R>(
  1. _ComputeArgument<T> argument
)
inherited

Implementation

Future<R> parse<T extends INetworkModel<T>, R>(
    _ComputeArgument<T> argument) async {
  if (R == List<T>) {
    try {
      final transformedData =
          (json.decode(argument.bundle) as List<dynamic>) //
              .map((data) =>
                  argument.model.fromJson(data as Map<String, dynamic>)) //
              .cast<T>()
              .toList() as R;

      return transformedData;
    } catch (e) {
      throw Exception('Error while parsing:$e');
    }
  } else {
    return json.decode(argument.bundle) as R;
  }
}