generateFeatureFromConfig function

Future<void> generateFeatureFromConfig(
  1. String configFilePath, {
  2. bool useFreezed = false,
})

Main function to generate complete feature from enhanced config

Implementation

Future<void> generateFeatureFromConfig(String configFilePath, {bool useFreezed = false}) async {
  try {
    final config = await _readFeatureConfig(configFilePath);

    print('Generating feature: ${config.featureName}');
    print('Description: ${config.description}');

    // Create feature directory structure
    await _createFeatureStructure(config, useFreezed);

    // Generate models from JSON files
    await _generateModels(config, useFreezed);

    // Generate repository and service files
    await _generateRepositoryAndService(config, useFreezed);

    // Generate cubit/state management
    await _generateStateManagement(config, useFreezed);

    // Generate UI components
    await _generateUIComponents(config, useFreezed);

    print('✅ Feature "${config.featureName}" generated successfully!');
    print('📁 Location: lib/features/${config.featureName.toLowerCase()}');
    print('🔧 Run "sf_cli runner" to generate freezed files');

  } catch (e) {
    print('❌ Error generating feature: $e');
    exit(1);
  }
}