withSpinner<T> method
Run a task with a spinner animation
Implementation
Future<T> withSpinner<T>({
required Future<T> Function() task,
required String message,
String? successMessage,
String? errorMessage,
}) async {
final spinner = ConsoleSpinner(message);
spinner.start();
try {
final result = await task();
spinner.stop(
completionMessage: successMessage ?? '$message completed',
success: true,
);
return result;
} catch (e) {
spinner.stop(
completionMessage: errorMessage ?? 'Failed: $e',
success: false,
);
rethrow;
}
}