createFeature method

void createFeature(
  1. String projectName,
  2. String featureName
)

Create a feature with Bloc + Presentation + Domain + Data layers

Implementation

void createFeature(String projectName, String featureName) {
  final base = '$projectName/lib/features/$featureName';

  // Folders
  final folders = [
    '$base/presentation/bloc',
    '$base/presentation/view',
    '$base/domain/entities',
    '$base/domain/repositories',
    '$base/domain/usecases',
    '$base/data/models',
    '$base/data/repositories',
    '$base/data/datasources',
  ];

  for (final f in folders) Directory(f).createSync(recursive: true);

  // Create Bloc files
  _createBloc(base, featureName);

  // Domain files
  _createDomainFiles(base, featureName);

  // Data files
  _createDataFiles(base, featureName);

  // Presentation view
  _createPresentationView(base, featureName);

  print('✅ Feature $featureName created!');
}