generateBlocResource function

void generateBlocResource(
  1. String entity,
  2. bool isRepoAbstract
)

Generates a provider-based resource structure.

Includes:

  • Bloc
  • Events
  • State
  • Repository
  • Model & DTOs

entity is the name of the resource (e.g., User). isRepoAbstract determines if repository methods are abstract.

Implementation

void generateBlocResource(String entity, bool isRepoAbstract) {
  final lower = entity.toLowerCase();
  final pascal = entity;

  final baseDir = Directory('lib/blocs/$lower');
  final modelDir = Directory('lib/blocs/$lower/model');

  baseDir.createSync(recursive: true);
  modelDir.createSync(recursive: true);

  generateBloc(baseDir.path, pascal, lower);
  generateEvent(baseDir.path, pascal);
  generateState(baseDir.path, pascal);
  generateRepository(baseDir.path, pascal, lower, isRepoAbstract);

  generateModel(modelDir.path, pascal, lower);
  generateDtos(modelDir.path, pascal, lower);

  print("✅ BLoC resource for $entity generated");
}