import 'dart:async'; extension NamedTimeoutExtension on Future { /// Like [Future.timeout], but the [TimeoutException] includes [operation] /// so crash reports identify which call timed out. Future namedTimeout(Duration timeLimit, {required String operation}) { return timeout(timeLimit, onTimeout: () { throw TimeoutException('$operation timed out', timeLimit); }); } }