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)],
  );
}