Response constructor

Response(
  1. Object? body, {
  2. int? status,
  3. String? statusText,
  4. Object? headers,
})

Creates a new Response object.

MDN Reference

Implementation

factory Response(
  Object? body, {
  int? status,
  String? statusText,
  Object? headers,
}) {
  return switch (body) {
    Response res => Response._(res.body,
        type: res.type,
        headers: headers ?? res.headers,
        status: status ?? res.status,
        statusText: statusText),
    Stream<Uint8List> stream => Response._(stream,
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    ArrayBuffer buffer => Response._(Stream.value(buffer.asUint8List()),
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    TypedData data => Response._(Stream.value(data.buffer.asUint8List()),
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    Blob blob => blob.createResponse(
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    FormData fromData => fromData.createResponse(
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    URLSearchParams params => params.createResponse(
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    String value => Response._(Stream<Uint8List>.value(utf8.encode(value)),
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    null => Response._(null,
        headers: headers,
        status: status,
        statusText: statusText,
        type: ResponseType.basic),
    // Other types, returns json response
    _ => Response.json(body,
        headers: headers, status: status, statusText: statusText),
  };
}