| 12345678910111213141516171819202122232425262728293031323334353637 |
- import 'package:get_it/get_it.dart';
- import 'package:shared_preferences/shared_preferences.dart';
- import 'package:http/http.dart' as http;
- import 'data/datasources/local/shared_prefs.dart';
- import 'data/datasources/remote/api_client.dart';
- import 'data/repositories/auth_repository.dart';
- import 'data/repositories/user_repository.dart';
- import 'presentation/providers/auth_provider.dart';
- import 'presentation/providers/user_provider.dart';
-
- final GetIt sl = GetIt.instance;
-
- Future<void> init() async {
- // External dependencies
- final sharedPreferences = await SharedPreferences.getInstance();
- sl.registerLazySingleton(() => sharedPreferences);
-
- // HTTP Client
- sl.registerLazySingleton(() => http.Client());
-
- // Data sources
- sl.registerLazySingleton(() => SharedPrefs(sl()));
- sl.registerLazySingleton(() => ApiClient(sl()));
-
- // Repositories
- sl.registerLazySingleton(() => AuthRepository(
- apiClient: sl(),
- prefs: sl(),
- ));
- sl.registerLazySingleton(() => UserRepository(
- apiClient: sl(),
- ));
-
- // Providers
- sl.registerFactory(() => AuthProvider(authRepository: sl()));
- sl.registerFactory(() => UserProvider(userRepository: sl()));
- }
|