assertReturn<T> function

T assertReturn<T>(
  1. ReturnParams ret
)

Implementation

T assertReturn<T>(ReturnParams ret) {
  if (ret.status == ReturnStatus.failed) {
    throw Exception(ret.msg?.toString());
  }

  final value = ret.decoded ?? ret.msg ?? '';
  if (value == null) {
    throw Exception('Return value cannot be null');
  }

  // Convert based on target type
  if (T == String) {
    return value.toString() as T;
  } else if (T == int) {
    return (value is String ? int.parse(value) : value as int) as T;
  } else if (T == double) {
    return (value is String ? double.parse(value) : value as double) as T;
  } else if (T == bool) {
    if (value is String) {
      return (value.toLowerCase() == 'true') as T;
    }
    return value as T;
  }

  return value;
}