createBlocFiles method
Implementation
void createBlocFiles(String featureName, String basePath) {
final snakeCaseName = toSnakeCase(featureName);
final blocFile =
File('$basePath/presentation/bloc/${snakeCaseName}_bloc.dart');
final eventFile =
File('$basePath/presentation/bloc/${snakeCaseName}_event.dart');
final stateFile =
File('$basePath/presentation/bloc/${snakeCaseName}_state.dart');
final classNamePrefix =
featureName[0].toUpperCase() + featureName.substring(1);
final packageName = getPackageName(basePath);
if (!blocFile.existsSync()) {
blocFile.writeAsStringSync('''
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:$packageName/features/$featureName/presentation/bloc/${snakeCaseName}_event.dart';
import 'package:$packageName/features/$featureName/presentation/bloc/${snakeCaseName}_state.dart';
class ${classNamePrefix}Bloc extends Bloc<${classNamePrefix}Event, ${classNamePrefix}State> {
${classNamePrefix}Bloc() : super(${classNamePrefix}Initial()) {
on<${classNamePrefix}Event>((event, emit) {
// TODO: implement event handler
});
}
}
''');
print('Created bloc file: ${snakeCaseName}_bloc.dart');
}
if (!eventFile.existsSync()) {
eventFile.writeAsStringSync('''
import 'package:equatable/equatable.dart';
sealed class ${classNamePrefix}Event extends Equatable {
const ${classNamePrefix}Event();
@override
List<Object> get props => [];
}
''');
print('Created event file: ${snakeCaseName}_event.dart');
}
if (!stateFile.existsSync()) {
stateFile.writeAsStringSync('''
import 'package:equatable/equatable.dart';
sealed class ${classNamePrefix}State extends Equatable {
const ${classNamePrefix}State();
@override
List<Object> get props => [];
}
final class ${classNamePrefix}Initial extends ${classNamePrefix}State {}
''');
print('Created state file: ${snakeCaseName}_state.dart');
}
}