validateProjectName function

ValidationResult validateProjectName(
  1. String name
)

Implementation

ValidationResult validateProjectName(String name) {
  if (name.isEmpty) {
    return const ValidationFailure(
      ruleName: 'not_empty',
      message: 'Project name must not be empty.',
    );
  }
  // Check characters
  final validChars = RegExp(r'^[a-z0-9_]+$');
  if (!validChars.hasMatch(name)) {
    return const ValidationFailure(
      ruleName: 'lowercase_alphanumeric_underscore',
      message:
          'Project name must contain only lowercase letters, digits, and underscores.',
    );
  }
  // Check starts with digit
  if (RegExp(r'^[0-9]').hasMatch(name)) {
    return const ValidationFailure(
      ruleName: 'no_starting_digit',
      message: 'Project name must not start with a digit.',
    );
  }
  // Check reserved words
  if (dartKeywords.contains(name)) {
    return const ValidationFailure(
      ruleName: 'not_reserved_word',
      message: 'Project name must not be a Dart reserved word.',
    );
  }
  return const ValidationSuccess();
}