run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
void run() async {
try {
// Step 1: Load project configuration
final argMorphemeYaml = argResults.getOptionMorphemeYaml();
final projectName = YamlHelper.loadFileYaml(argMorphemeYaml).projectName;
// Step 2: Validate arguments and create configuration
final config = _validator.validate(argResults, projectName);
// Step 3: Process and validate configuration
final processedConfig = _configManager.processConfiguration(config);
_configManager.validateConfiguration(processedConfig);
// Step 4: Validate generation sequence
_orchestrator.validateGenerationSequence(processedConfig);
// Step 5: Generate API components
await _orchestrator.generateApi(processedConfig);
} catch (e) {
StatusHelper.failed('API generation failed: $e');
rethrow;
}
}