forked from eatvio/eatvio_app
42 lines
1.7 KiB
Dart
42 lines
1.7 KiB
Dart
import 'package:eatvio_app/core/app_initializer.dart';
|
|
import 'package:eatvio_app/core/cached_base_url.dart';
|
|
import 'package:eatvio_app/core/di/app_config_registration.dart';
|
|
import 'package:eatvio_app/core/di/cubit_registrations.dart';
|
|
import 'package:eatvio_app/core/di/external_registrations.dart';
|
|
import 'package:eatvio_app/core/di/repository_registrations.dart';
|
|
import 'package:eatvio_app/core/di/service_registrations.dart';
|
|
import 'package:eatvio_app/core/prefs.dart';
|
|
import 'package:eatvio_app/core/websockets/ws_manager.dart';
|
|
import 'package:get_it/get_it.dart';
|
|
|
|
/// Глобальный экземпляр GetIt для внедрения зависимостей
|
|
final sl = GetIt.instance;
|
|
|
|
/// Инициализация системы внедрения зависимостей
|
|
Future<void> init({required AppBuildType buildType}) async {
|
|
// Регистрация AppConfig
|
|
AppConfigRegistration.registerAppConfig(buildType: buildType);
|
|
|
|
// Регистрация внешних зависимостей (Dio, etc.)
|
|
ExternalRegistrations.registerAll();
|
|
|
|
// Ожидание инициализации асинхронных зависимостей
|
|
await sl.getAsync<Prefs>();
|
|
// До создания Dio и любых запросов к бэкенду.
|
|
applyCachedBaseUrl();
|
|
|
|
// Регистрация сервисов
|
|
ServiceRegistrations.registerAll();
|
|
|
|
// Регистрация репозиториев
|
|
RepositoryRegistrations.registerAll();
|
|
|
|
// Регистрация Cubit'ов
|
|
CubitRegistrations.registerAll();
|
|
|
|
// Регистрация WebSocket менеджера
|
|
sl.registerLazySingleton<WsManager>(
|
|
() => WsManager(wsService: sl(), errorReporter: sl()),
|
|
);
|
|
}
|