Files
eatvio_app/lib/locator_service.dart
2024-06-28 12:55:57 +03:00

37 lines
1.4 KiB
Dart

import 'package:dio/dio.dart';
import 'package:eatvio_app/core/initialization_cubit/initialization_cubit.dart';
import 'package:eatvio_app/features/chat/presentation/bloc/chat_room_cubit/chat_room_cubit.dart';
import 'package:eatvio_app/features/chat/repositories/chat_repository.dart';
import 'package:eatvio_app/features/chat/services/chat_service.dart';
import 'package:eatvio_app/features/feed/presentation/bloc/feed_cubit/feed_cubit.dart';
import 'package:eatvio_app/features/feed/repositories/feed_repository.dart';
import 'package:eatvio_app/features/feed/services/feed_service.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:get_it/get_it.dart';
final sl = GetIt.instance;
Future<void> init() async {
// BLoC
sl.registerFactory<ChatRoomCubit>(() => ChatRoomCubit(chatRepository: sl()));
sl.registerFactory<InitializationCubit>(() => InitializationCubit(chatRepository: sl()));
sl.registerFactory<FeedCubit>(() => FeedCubit(feedRepository: sl()));
// Repository
sl.registerLazySingleton<ChatRepository>(() => ChatRepository(chatService: sl()));
sl.registerLazySingleton<FeedRepository>(() => FeedRepository(feedService: sl()));
// Services
sl.registerLazySingleton<ChatService>(() => ChatService(sl()));
sl.registerLazySingleton<FeedService>(() => FeedService(sl()));
// External
sl.registerLazySingleton(
() => Dio(
BaseOptions(
baseUrl: dotenv.env['SERVER_ROOT']!,
),
),
);
}