ensureInstanceFor static method

Future ensureInstanceFor(
  1. dynamic type
)

Ensure type singleton instances exists

Used as availability check point for future singletons

await Singleton.ensureInstanceFor(MySingleton);

await Singleton.ensureInstanceFor(Singleton<MyService>());

await Singleton.ensureInstanceFor([MySingleton, MyAnotherSingleton]);

await Singleton.ensureInstanceFor(Singleton.key<MyService>("service1"));

await Singleton.ensureInstanceFor([Singleton.withName<MyService>("service1"), Singleton.withName<MyService>("service2")]);

Implementation

static Future ensureInstanceFor(dynamic type) {
  final singleton = _findSingletons(type);

  if (singleton is Singleton) {
    return singleton.ensuredInstance();
  } else {
    print(singleton);

    final futures =
        (singleton as Iterable<Singleton>).map((e) => e.ensuredInstance());

    return Future.wait(futures);
  }
}