Files
immich/mobile-v2/lib/domain/service_locator.dart
T
shenlong-tanwen 11cef4ec9a 🚀
2025-02-26 08:58:18 +05:30

30 lines
1.0 KiB
Dart

import 'package:get_it/get_it.dart';
import 'package:immich_mobile/domain/interfaces/log.interface.dart';
import 'package:immich_mobile/domain/interfaces/store.interface.dart';
import 'package:immich_mobile/domain/repositories/database.repository.dart';
import 'package:immich_mobile/domain/repositories/log.repository.dart';
import 'package:immich_mobile/domain/repositories/store.repository.dart';
import 'package:immich_mobile/domain/store_manager.dart';
/// Ambient instance
final getIt = GetIt.instance;
class ServiceLocator {
const ServiceLocator._internal();
static void configureServices() {
// Register DB
getIt.registerSingleton<DriftDatabaseRepository>(DriftDatabaseRepository());
_registerCoreServices();
}
static void _registerCoreServices() {
// Init store
getIt
.registerFactory<IStoreRepository>(() => StoreDriftRepository(getIt()));
getIt.registerSingleton<StoreManager>(StoreManager(getIt()));
// Logs
getIt.registerFactory<ILogRepository>(() => LogDriftRepository(getIt()));
}
}