Files
umbrix/lib/utils/sentry_utils.dart

30 lines
852 B
Dart
Raw Normal View History

2023-10-03 21:12:14 +03:30
import 'dart:io';
import 'package:dio/dio.dart';
import 'package:hiddify/domain/failures.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
FutureOr<SentryEvent?> sentryBeforeSend(SentryEvent event, {Hint? hint}) {
if (canSendEvent(event.throwable)) return event;
return null;
}
bool canSendEvent(dynamic throwable) {
return switch (throwable) {
UnexpectedFailure(:final error) => canSendEvent(error),
DioException _ => false,
SocketException _ => false,
2023-10-07 20:22:21 +03:30
HttpException _ => false,
HandshakeException _ => false,
2023-10-04 18:06:48 +03:30
ExpectedFailure _ => false,
ExpectedMeasuredFailure _ => false,
2023-10-03 21:12:14 +03:30
_ => true,
};
}
2023-10-04 18:06:48 +03:30
bool canLogEvent(dynamic throwable) => switch (throwable) {
ExpectedMeasuredFailure _ => true,
_ => canSendEvent(throwable),
};