Files
afterwork/lib/config/injection/injection.dart
2024-09-24 00:32:20 +00:00

36 lines
1.3 KiB
Dart

import 'package:get_it/get_it.dart';
import 'package:http/http.dart' as http;
import '../../data/datasources/user_remote_data_source.dart';
import '../../data/repositories/user_repository_impl.dart';
import '../../domain/usecases/get_user.dart';
/// Instance globale pour gérer l'injection des dépendances via GetIt
final sl = GetIt.instance;
/// Fonction d'initialisation pour enregistrer toutes les dépendances.
/// Utilisée pour fournir des services, des data sources, des repositories et des use cases.
void init() {
// Log de démarrage de l'injection des dépendances
print("Démarrage de l'initialisation des dépendances.");
// Register Http Client
sl.registerLazySingleton(() => http.Client());
print("Client HTTP enregistré.");
// Register Data Sources
sl.registerLazySingleton(() => UserRemoteDataSource(sl()));
print("DataSource pour UserRemoteDataSource enregistré.");
// Register Repositories
sl.registerLazySingleton(() => UserRepositoryImpl(remoteDataSource: sl()));
print("Repository pour UserRepositoryImpl enregistré.");
// Register Use Cases
sl.registerLazySingleton(() => GetUser(sl()));
print("UseCase pour GetUser enregistré.");
// Log de fin d'initialisation des dépendances
print("Initialisation des dépendances terminée.");
}