deps_resolver.dart 1.9 KB

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