input function

Future<String> input(
  1. String message, {
  2. String? defaultValue,
  3. required Logger logger,
})

Prompts the user for input. If defaultValue is provided, the user can skip the prompt by pressing Enter.

Implementation

Future<String> input(
  final String message, {
  final String? defaultValue,
  required final Logger logger,
}) async {
  final defaultDescription = defaultValue == null ? '' : ' ($defaultValue)';

  logger.write(
    '$message$defaultDescription: ',
    LogLevel.info,
    newLine: false,
    newParagraph: false,
  );
  final input = stdin.readLineSync()?.trim();
  final missingInput = input == null || input.isEmpty;
  if (missingInput) {
    return defaultValue ?? '';
  }

  return input;
}