askString static method

Future<String> askString(
  1. String question, {
  2. String? defaultValue,
  3. bool validator(
    1. String
    )?,
  4. String? validationMessage,
})

Ask for a string input with validation

Implementation

static Future<String> askString(
  String question, {
  String? defaultValue,
  bool Function(String)? validator,
  String? validationMessage,
}) async {
  if (PromptEnvironment.useSimplePrompts) {
    return _askSimpleString(
      question,
      defaultValue: defaultValue,
      validator: validator,
      validationMessage: validationMessage,
    );
  }

  try {
    final String result = Input(
      prompt: question,
      defaultValue: defaultValue ?? '',
      validator: validator != null
          ? (String value) {
              if (validator(value)) return true;
              throw ValidationError(validationMessage ?? 'Invalid input');
            }
          : null,
    ).interact();
    return result;
  } on Object {
    return _askSimpleString(
      question,
      defaultValue: defaultValue,
      validator: validator,
      validationMessage: validationMessage,
    );
  }
}