createSingletons method

  1. @visibleForTesting
Future<void> createSingletons()

Implementation

@visibleForTesting
Future<void> createSingletons() async {
  // no need to count references for singletons

  final unorderedInstances = singletonInstances.where(
    (element) => element.initializationOrder == null,
  );

  final orderedInstances =
      singletonInstances
          .where((element) => element.initializationOrder != null)
          .toList()
        ..sort((first, second) {
          return first.initializationOrder!.compareTo(
            second.initializationOrder!,
          );
        });

  for (final element in orderedInstances) {
    await _addInstance(element);
  }

  await Future.wait([
    for (final element in unorderedInstances) _addInstance(element),
  ]);
}