2026-03-15 05:06:16 +01:00
|
|
|
import 'dart:async';
|
|
|
|
|
|
|
|
|
|
extension NamedTimeoutExtension<T> on Future<T> {
|
|
|
|
|
/// Like [Future.timeout], but the [TimeoutException] includes [operation]
|
|
|
|
|
/// so crash reports identify which call timed out.
|
|
|
|
|
Future<T> namedTimeout(Duration timeLimit, {required String operation}) {
|
2026-04-18 12:40:35 +02:00
|
|
|
return timeout(
|
|
|
|
|
timeLimit,
|
|
|
|
|
onTimeout: () {
|
|
|
|
|
throw TimeoutException('$operation timed out', timeLimit);
|
|
|
|
|
},
|
|
|
|
|
);
|
2026-03-15 05:06:16 +01:00
|
|
|
}
|
|
|
|
|
}
|