generateBlocBinding method
Implementation
String generateBlocBinding(String name) {
final className = toPascalCase(name);
return '''
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:get_it/get_it.dart';
import '../../data/datasources/${toSnakeCase(name)}_remote_data_source.dart';
import '../../data/repositories/${toSnakeCase(name)}_repository_impl.dart';
import '../../domain/repositories/${toSnakeCase(name)}_repository.dart';
import '../../domain/usecases/${toSnakeCase(name)}_usecase.dart';
import '../bloc/${toSnakeCase(name)}_bloc.dart';
class ${className}Provider {
static void init() {
final getIt = GetIt.instance;
// Data Sources
getIt.registerLazySingleton<${className}RemoteDataSource>(
() => ${className}RemoteDataSourceImpl(),
);
// Repositories
getIt.registerLazySingleton<${className}Repository>(
() => ${className}RepositoryImpl(getIt()),
);
// Use Cases
getIt.registerLazySingleton<${className}UseCase>(
() => ${className}UseCase(getIt()),
);
// BLoC
getIt.registerFactory<${className}Bloc>(
() => ${className}Bloc(getIt()),
);
}
static BlocProvider<${className}Bloc> provide({
required Widget child,
}) {
return BlocProvider<${className}Bloc>(
create: (context) => GetIt.instance<${className}Bloc>()..add(const Load${className}s()),
child: child,
);
}
}
''';
}