initiator property

String? get initiator

Returns the first application-level frame from stackTrace (excluding Alice, Dio, etc.)

Implementation

String? get initiator {
  if (stackTrace == null) return null;
  final lines = stackTrace.toString().split('\n');
  for (final line in lines) {
    final trimmed = line.trim();
    if (trimmed.isEmpty) continue;
    if (trimmed.contains('flutter_alice') ||
        trimmed.contains('package:dio') ||
        trimmed.contains('package:http') ||
        trimmed.contains('dart:async') ||
        trimmed.contains('dart:io')) {
      continue;
    }
    return trimmed;
  }
  return null;
}