copyWith method

HttpBaseOptions copyWith({
  1. String? method,
  2. String? baseUrl,
  3. Map<String, dynamic>? queryParameters,
  4. String? path,
  5. int? connectTimeout,
  6. int? receiveTimeout,
  7. int? sendTimeout,
  8. Map<String, dynamic>? extra,
  9. Map<String, dynamic>? headers,
  10. ResponseType? responseType,
  11. String? contentType,
  12. ValidateStatus? validateStatus,
  13. bool? receiveDataWhenStatusError,
  14. bool? followRedirects,
  15. int? maxRedirects,
  16. RequestEncoder? requestEncoder,
  17. ResponseDecoder? responseDecoder,
  18. ListFormat? listFormat,
  19. bool? setRequestContentTypeWhenNoPayload,
  20. String? name,
  21. HttpTransformer? transformer,
  22. String? proxy,
})

Create a Option from current instance with merging attributes.

Implementation

HttpBaseOptions copyWith({
  String? method,
  String? baseUrl,
  Map<String, dynamic>? queryParameters,
  String? path,
  int? connectTimeout,
  int? receiveTimeout,
  int? sendTimeout,
  Map<String, dynamic>? extra,
  Map<String, dynamic>? headers,
  ResponseType? responseType,
  String? contentType,
  ValidateStatus? validateStatus,
  bool? receiveDataWhenStatusError,
  bool? followRedirects,
  int? maxRedirects,
  RequestEncoder? requestEncoder,
  ResponseDecoder? responseDecoder,
  ListFormat? listFormat,
  bool? setRequestContentTypeWhenNoPayload,
  String? name,
  HttpTransformer? transformer,
  String? proxy,
}) {
  Map<String, dynamic> hs;
  if (contentType != null) {
    if (headers != null) {
      hs = headers..remove(Headers.contentTypeHeader);
    } else {
      hs = Map.from(this.headers)..remove(Headers.contentTypeHeader);
    }
  } else {
    if (headers != null) {
      if (headers.containsKey(Headers.contentTypeHeader)) {
        contentType = headers[Headers.contentTypeHeader];
      } else if (this.contentType != null) {
        contentType = this.contentType;
      } else if (this.headers.containsKey(Headers.contentTypeHeader)) {
        contentType = this.headers[Headers.contentTypeHeader];
      }
      hs = headers..remove(Headers.contentTypeHeader);
    } else {
      if (this.contentType != null) {
        contentType = this.contentType;
      } else if (this.headers.containsKey(Headers.contentTypeHeader)) {
        contentType = this.headers[Headers.contentTypeHeader];
      }
      hs = Map.from(this.headers)..remove(Headers.contentTypeHeader);
    }
  }

  return HttpBaseOptions(
    method: method ?? this.method,
    baseUrl: baseUrl ?? this.baseUrl,
    queryParameters: queryParameters ?? this.queryParameters,
    connectTimeout: connectTimeout ?? this.connectTimeout,
    receiveTimeout: receiveTimeout ?? this.receiveTimeout,
    sendTimeout: sendTimeout ?? this.sendTimeout,
    extra: extra ?? Map.from(this.extra),
    headers: hs,
    responseType: responseType ?? this.responseType,
    contentType: contentType,
    validateStatus: validateStatus ?? this.validateStatus,
    receiveDataWhenStatusError:
        receiveDataWhenStatusError ?? this.receiveDataWhenStatusError,
    followRedirects: followRedirects ?? this.followRedirects,
    maxRedirects: maxRedirects ?? this.maxRedirects,
    requestEncoder: requestEncoder ?? this.requestEncoder,
    responseDecoder: responseDecoder ?? this.responseDecoder,
    listFormat: listFormat ?? this.listFormat,
    setRequestContentTypeWhenNoPayload: setRequestContentTypeWhenNoPayload ??
        this.setRequestContentTypeWhenNoPayload,
    name: name ?? this.name,
    transformer: transformer ?? this.transformer,
    proxy: proxy ?? this.proxy,
  );
}