Request constructor

Request(
  1. Object input, {
  2. RequestCache? cache,
  3. RequestCredentials? credentials,
  4. RequestDestination? destination,
  5. String? integrity,
  6. String? method,
  7. RequestMode? mode,
  8. RequestRedirect? redirect,
  9. String? referrer,
  10. ReferrerPolicy? referrerPolicy,
  11. Object? headers,
  12. Object? body,
})

Implementation

factory Request(
  Object input, {
  RequestCache? cache,
  RequestCredentials? credentials,
  RequestDestination? destination,
  String? integrity,
  String? method,
  RequestMode? mode,
  RequestRedirect? redirect,
  String? referrer,
  ReferrerPolicy? referrerPolicy,
  Object? headers,
  Object? body,
}) {
  final base = switch (input) {
    Request request => request,
    _ => null,
  };
  final request = Request._();

  request._storage[#url] =
      base == null ? URL(input, defaultBaseURL).toString() : base.url;
  request._storage[#headers] =
      (headers == null ? base?.headers : null) ?? Headers(headers);
  request._storage[#cache] = cache ?? base?.cache;
  request._storage[#credentials] = credentials ?? base?.credentials;
  request._storage[#destination] = destination ?? base?.destination;
  request._storage[#integrity] = integrity ?? base?.integrity;
  request._storage[#method] = method ?? base?.method;
  request._storage[#mode] = mode ?? base?.mode;
  request._storage[#redirect] = redirect ?? base?.redirect;
  request._storage[#referrer] = referrer ?? base?.referrer;
  request._storage[#referrerPolicy] = referrerPolicy ?? base?.referrerPolicy;

  request.initBody(body ?? base?.body);

  return request;
}