finalize method

  1. @override
ByteStream finalize()

Freezes all mutable fields and returns a single-subscription ByteStream that will emit the request body.

Implementation

@override
http.ByteStream finalize() {
  final byteStream = super.finalize();
  final total = contentLength;
  int sent = 0;

  final stream = byteStream.transform(
    StreamTransformer.fromHandlers(
      handleData: (data, sink) {
        sent += data.length;
        onProgress?.call(sent, total);
        sink.add(data);
      },
    ),
  );

  return http.ByteStream(stream.cast());
}