process method
Performs process.
Implementation
@override
ErrorReport? process(ErrorReport report) {
if (report.fatal) return report;
final now = report.timestamp;
_seen.removeWhere((_, timestamp) {
final age = now.difference(timestamp);
return age.isNegative || age > window;
});
var key = report.fingerprint.isNotEmpty
? report.fingerprint.join('|')
: '${report.exception.runtimeType}|${report.message}|'
'${report.stackTrace?.toString().split('\n').firstOrNull ?? ''}';
if (key.length > maxFingerprintLength) {
key = key.substring(0, maxFingerprintLength);
}
final previous = _seen[key];
if (previous != null && now.difference(previous) <= window) return null;
if (_seen.length >= maxEntries) _seen.remove(_seen.keys.first);
_seen[key] = now;
return report;
}