convertStackTrace function

List<Map<String, String>>? convertStackTrace(
  1. StackTrace? stackTrace
)

Implementation

List<Map<String, String>>? convertStackTrace(StackTrace? stackTrace) {
  if (stackTrace == null) return null;

  var trace = Trace.from(stackTrace);

  var result = <Map<String, String>>[];

  for (var frame in trace.frames) {
    String? member = frame.member;
    String declaringClass = '';
    String methodName = '';

    if (member != null) {
      var splittedMember = member.split('.');
      declaringClass = splittedMember.length > 1 ? splittedMember.removeAt(0) : '';
      methodName = splittedMember.join('.');
    }

    var fileName = frame.uri.path.split('/').last;

    result.add({
      'declaringClass': declaringClass,
      'methodName': methodName,
      'fileName': fileName,
      'lineNumber': frame.line?.toString() ?? ''
    });
  }
  return result;
}