convertTo function

dynamic convertTo(
  1. dynamic request,
  2. dynamic responseAs,
  3. dynamic jsonObj
)

Implementation

dynamic convertTo(dynamic request, dynamic responseAs, dynamic jsonObj) {
  TypeContext? reqContext;
  if (request is IConvertible) {
    reqContext = request.context;
  } else if (request is List) {
    var firstRequest = request[0];
    var firstResponse = firstRequest.createResponse();
    var elementType = nameOf(firstResponse);
    var listType = "List<${elementType}>";
    reqContext = createListContext((firstRequest as IConvertible).context!, listType, responseAs);
    return ListConverter.populate(responseAs, listType, jsonObj, reqContext);
  }
  if (responseAs is List) {
    var listType = getResponseType(request, responseAs);
    return ListConverter.populate(responseAs, listType, jsonObj, reqContext);
  }
  if (reqContext != null && responseAs is IConvertible) {
    responseAs.context = reqContext;
  }
  var fromMap = responseAs.fromMap;
  var ret = fromMap(jsonObj);
  return ret;
}