deps_resolver.dart 1.2 KB

123456789101112131415161718192021222324252627
  1. import 'package:app_flowy/home/application/menu/menu_bloc.dart';
  2. import 'package:app_flowy/home/infrastructure/i_app_impl.dart';
  3. import 'package:app_flowy/home/infrastructure/i_workspace_impl.dart';
  4. import 'package:app_flowy/home/infrastructure/repos/app_repo.dart';
  5. import 'package:app_flowy/home/infrastructure/repos/workspace_repo.dart';
  6. import 'package:get_it/get_it.dart';
  7. class HomeDepsResolver {
  8. static Future<void> resolve(GetIt getIt) async {
  9. getIt.registerFactoryParam<WorkspaceRepository, String, void>(
  10. (workspaceId, _) => WorkspaceRepository(workspaceId: workspaceId));
  11. getIt.registerFactoryParam<AppRepository, String, void>(
  12. (appId, _) => AppRepository(appId: appId));
  13. //Interface implementation
  14. getIt.registerFactoryParam<IApp, String, void>(
  15. (appId, _) => IAppImpl(repo: getIt<AppRepository>(param1: appId)));
  16. getIt.registerFactoryParam<IWorkspace, String, void>((workspacId, _) =>
  17. IWorkspaceImpl(repo: getIt<WorkspaceRepository>(param1: workspacId)));
  18. //Bloc
  19. getIt.registerFactoryParam<MenuBloc, String, void>(
  20. (workspaceId, _) => MenuBloc(getIt<IWorkspace>(param1: workspaceId)));
  21. }
  22. }