bloc static method
Implementation
static Future<void> bloc() async {
final blocName = InputService.getValidatedInput(
consoleMessage: Constants.kEnterBlocName,
errorMessage: Constants.kInvalidValue,
functionValidator: Validator.isValidSingleString
).snakeCase();
final blocClassName = blocName.toCamelCase();
final path = DirectoryService.choosePath();
FileService.createFile(
filePath: '$path/${blocName}_bloc.dart',
content: '''
part '${blocName}_event.dart';
part '${blocName}_state.dart';
class ${blocClassName}Bloc extends Bloc<${blocClassName}Event, ${blocClassName}State> {
${blocClassName}Bloc() : super(${blocClassName}Initial()) {
on<Example>(_example);
}
Future<void> _example(
Example event,
Emitter<${blocClassName}State> emit
) async {
}
}
'''
);
FileService.createFile(
filePath: '$path/${blocName}_event.dart',
content: '''
part of '${blocName}_bloc.dart';
sealed class ${blocClassName}Event extends Equatable {
const ${blocClassName}Event();
@override
List<Object> get props => [];
}
final class Example extends ${blocClassName}Event {}
'''
);
FileService.createFile(
filePath: '$path/${blocName}_state.dart',
content: '''
part of '${blocName}_bloc.dart';
sealed class ${blocClassName}State extends Equatable {
@override
List<Object> get props => [];
}
final class ${blocClassName}Initial extends ${blocClassName}State {}
final class ${blocClassName}Loading extends ${blocClassName}State {}
final class ${blocClassName}Loaded extends ${blocClassName}State {}
final class ${blocClassName}Failure extends ${blocClassName}State {
${blocClassName}Failure(this.error);
final Object error;
@override
List<Object> get props => [error];
}
'''
);
Console.writeLine(dcli.green('✅ Bloc successfully created!'));
}