deps_resolver.dart 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import 'package:app_flowy/workspace/application/app/app_bloc.dart';
  2. import 'package:app_flowy/workspace/application/app/app_watch_bloc.dart';
  3. import 'package:app_flowy/workspace/application/menu/menu_bloc.dart';
  4. import 'package:app_flowy/workspace/application/menu/menu_watch.dart';
  5. import 'package:app_flowy/workspace/domain/page_stack/page_stack.dart';
  6. import 'package:app_flowy/workspace/infrastructure/i_app_impl.dart';
  7. import 'package:app_flowy/workspace/infrastructure/i_workspace_impl.dart';
  8. import 'package:app_flowy/workspace/infrastructure/repos/app_repo.dart';
  9. import 'package:app_flowy/workspace/infrastructure/repos/workspace_repo.dart';
  10. import 'package:get_it/get_it.dart';
  11. class HomeDepsResolver {
  12. static Future<void> resolve(GetIt getIt) async {
  13. //
  14. getIt.registerLazySingleton<HomePageStack>(() => HomePageStack());
  15. //App
  16. getIt.registerFactoryParam<AppRepository, String, void>(
  17. (appId, _) => AppRepository(appId: appId));
  18. getIt.registerFactoryParam<AppWatchRepository, String, void>(
  19. (appId, _) => AppWatchRepository(appId: appId));
  20. getIt.registerFactoryParam<IApp, String, void>(
  21. (appId, _) => IAppImpl(repo: getIt<AppRepository>(param1: appId)));
  22. getIt.registerFactoryParam<IAppWatch, String, void>((appId, _) =>
  23. IAppWatchImpl(repo: getIt<AppWatchRepository>(param1: appId)));
  24. //workspace
  25. getIt.registerFactoryParam<WorkspaceRepo, String, void>(
  26. (workspaceId, _) => WorkspaceRepo(workspaceId: workspaceId));
  27. getIt.registerFactoryParam<WorkspaceWatchRepo, String, void>(
  28. (workspaceId, _) => WorkspaceWatchRepo(workspaceId: workspaceId));
  29. getIt.registerFactoryParam<IWorkspace, String, void>((workspacId, _) =>
  30. IWorkspaceImpl(repo: getIt<WorkspaceRepo>(param1: workspacId)));
  31. getIt.registerFactoryParam<IWorkspaceWatch, String, void>((workspacId, _) =>
  32. IWorkspaceWatchImpl(
  33. repo: getIt<WorkspaceWatchRepo>(param1: workspacId)));
  34. //Bloc
  35. getIt.registerFactoryParam<MenuBloc, String, void>(
  36. (workspaceId, _) => MenuBloc(getIt<IWorkspace>(param1: workspaceId)));
  37. getIt.registerFactoryParam<MenuWatchBloc, String, void>((workspaceId, _) =>
  38. MenuWatchBloc(getIt<IWorkspaceWatch>(param1: workspaceId)));
  39. getIt.registerFactoryParam<AppBloc, String, void>(
  40. (appId, _) => AppBloc(getIt<IApp>(param1: appId)));
  41. getIt.registerFactoryParam<AppWatchBloc, String, void>(
  42. (appId, _) => AppWatchBloc(getIt<IAppWatch>(param1: appId)));
  43. // AppWatchBloc
  44. }
  45. }