run method

  1. @override
void run()
override

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;
  }
}