validatePageName static method

ValidationResult<String> validatePageName(
  1. String? name
)

Validates page name format.

Checks that page names follow naming conventions and are appropriate for code generation.

Parameters:

  • name: Page name to validate

Returns: ValidationResult with the normalized name or error details

Example:

final result = ArgumentValidator.validatePageName('login_page');
if (result.isValid) {
  print('Valid page name: ${result.value}');
} else {
  print('Invalid page name: ${result.error}');
}

Implementation

static ValidationResult<String> validatePageName(String? name) {
  if (name == null || name.isEmpty) {
    return ValidationResult.error(
      'Page name is required',
      suggestion: 'Provide a page name as an argument',
      examples: ['morpheme page login_page'],
    );
  }

  if (!RegExp(r'^[a-z][a-z0-9_]*$').hasMatch(name)) {
    return ValidationResult.error(
      'Page name must use snake_case format',
      suggestion: 'Use lowercase letters, numbers, and underscores only',
      examples: ['login_page', 'user_profile', 'settings_screen'],
    );
  }

  return ValidationResult.success(name.toLowerCase());
}