validatePageName static method
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());
}