compose method

RequestOptions compose(
  1. BaseOptions baseOpt,
  2. String path,
  3. dynamic data, {
  4. Map<String, dynamic>? queryParameters,
  5. CancelToken? cancelToken,
  6. Options? options,
  7. ProgressCallback? onSendProgress,
  8. ProgressCallback? onReceiveProgress,
})

Implementation

RequestOptions compose(
  BaseOptions baseOpt,
  String path,
  data, {
  Map<String, dynamic>? queryParameters,
  CancelToken? cancelToken,
  Options? options,
  ProgressCallback? onSendProgress,
  ProgressCallback? onReceiveProgress,
}) {

  var query = <String, dynamic>{};
  if (queryParameters != null) query.addAll(queryParameters);
  query.addAll(baseOpt.queryParameters);

  var _headers = Map<String,dynamic>.from(baseOpt.headers);
  if(headers!=null){
    _headers.addAll(headers!);
  }

  var _extra = Map<String,dynamic>.from(baseOpt.extra);
  if(extra!=null){
    _extra.addAll(extra!);
  }

  var requestOptions = RequestOptions(
    method: (method ?? baseOpt.method).toUpperCase(),
    headers: _headers,
    extra: _extra,
    baseUrl: baseOpt.baseUrl,
    path: path,
    data: data,
    connectTimeout: baseOpt.connectTimeout,
    sendTimeout: sendTimeout ?? baseOpt.sendTimeout,
    receiveTimeout: receiveTimeout ?? baseOpt.receiveTimeout,
    responseType: responseType ?? baseOpt.responseType,
    contentType:
        contentType ?? baseOpt.contentType ?? Headers.jsonContentType,
    validateStatus: validateStatus ?? baseOpt.validateStatus,
    receiveDataWhenStatusError:
        receiveDataWhenStatusError ?? baseOpt.receiveDataWhenStatusError,
    followRedirects: followRedirects ?? baseOpt.followRedirects,
    maxRedirects: maxRedirects ?? baseOpt.maxRedirects,
    queryParameters: query,
    requestEncoder: requestEncoder ?? baseOpt.requestEncoder,
    responseDecoder: responseDecoder ?? baseOpt.responseDecoder,
  );

  requestOptions.onReceiveProgress = onReceiveProgress;
  requestOptions.onSendProgress = onSendProgress;
  requestOptions.cancelToken = cancelToken;

  return requestOptions;
}