import 'dart:convert'; import 'dart:typed_data'; // adapted from Flutter `_OutputBuffer` in `/foundation/consolidate_response.dart` class OutputBuffer extends ByteConversionSinkBase { List>? _chunks = >[]; int _contentLength = 0; Uint8List? _bytes; @override void add(List chunk) { assert(_bytes == null); _chunks!.add(chunk); _contentLength += chunk.length; } @override void close() { if (_bytes != null) { // We've already been closed; this is a no-op return; } _bytes = Uint8List(_contentLength); int offset = 0; for (final List chunk in _chunks!) { _bytes!.setRange(offset, offset + chunk.length, chunk); offset += chunk.length; } _chunks = null; } Uint8List get bytes { assert(_bytes != null); return _bytes!; } }