truncateBody function
Cuts a text body to maxLength chars before capture; Maps and Lists pass through so formatting is paid only when shown.
Example:
event.responseBody = truncateBody(response.data, 10000);
truncateBody('abcdef', 3); // 'abc… [truncated, 6 chars total]'
Implementation
Object? truncateBody(Object? data, int maxLength) {
if (data == null) return null;
if (data is Uint8List || data is FormData) return prettyFormatBody(data);
if (data is String && data.length > maxLength) {
return '${data.substring(0, maxLength)}… [truncated, ${data.length} chars total]';
}
return data;
}