prompt method

Future<String> prompt({
  1. bool checker(
    1. String response
    )?,
})

Implementation

Future<String> prompt({
  final bool Function(String response)? checker,
}) {
  final completer = Completer<String>();
  late void Function() doAsk;
  doAsk = () {
    console.raw_console.write(message);
    Future(() {
      if (secret) {
        console.raw_console.echo_mode = false;
      }
      final response = console.raw_console.read();
      if (secret) {
        console.raw_console.echo_mode = true;
      }
      if (checker != null && response != null && !checker(response)) {
        doAsk();
        return;
      }
      completer.complete(response);
    });
  };
  doAsk();
  return completer.future;
}