initializeWidgetsDependencies function

Future<void> initializeWidgetsDependencies(
  1. List<dynamic Function()> dependenciesInitializers
)

Implementation

Future<void> initializeWidgetsDependencies(
    List<Function()> dependenciesInitializers) async {
  getIt.allowReassignment = true;
  if (!getIt.isRegistered<Client>()) {
    getIt.registerLazySingleton<Client>(() => Client());
  }
  getIt.registerLazySingleton<ActionGroups>(() => ActionGroups());
  getIt.registerLazySingleton<ActionMapper>(() => const ActionMapper());
  getIt.registerLazySingleton<DeepCollectionEquality>(
      () => const DeepCollectionEquality());

  getIt.registerLazySingleton<GoogleFontsUtils>(() => GoogleFontsUtils());
  getIt.registerLazySingleton<APIWorker>(() => APIWorker(getIt()));
  getIt.registerLazySingleton<SupabaseWorker>(() => SupabaseWorker(getIt()));

  /// Methods
  getIt
    ..registerLazySingleton(() => PageViewControllerMethods())
    ..registerLazySingleton(() => DesignFlowCMSMethods())
    ..registerLazySingleton(() => ConsoleMethods())
    ..registerLazySingleton(() => VariablesMethods())
    ..registerLazySingleton(() => NavigatorMethods())
    ..registerLazySingleton(() => HapticFeedbackMethods())
    ..registerLazySingleton(() => ConditionalMethods())
    ..registerLazySingleton(() => ListViewControllerMethods())
    ..registerLazySingleton(() => UIStatesMethods())
    ..registerLazySingleton(() => const APIMethods())
    ..registerLazySingleton(() => CubitMethods())
    ..registerLazySingleton(() => ParameterMethods())
    ..registerLazySingleton(() => const SupabaseMethods());

  /// Essential
  getIt
    ..registerLazySingleton<DynamicAttributes>(() => const DynamicAttributes())
    ..registerLazySingleton<NodesParse>(() => const NodesParse())
    ..registerLazySingleton<RunMethodsStation>(() => RunMethodsStation(
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
          getIt(),
        ));

  getIt.registerLazySingleton(() => AppRepository());
  getIt.registerLazySingleton(() => AppUseCase(getIt()));
  for (final dependency in dependenciesInitializers) {
    final result = dependency.call();
    // Verify if the result is a Future
    if (result is Future<void>) {
      await result;
    }
  }
  getIt.allowReassignment = false;
}