startApplication function

Future<DarwinSystem> startApplication(
  1. FutureOr<DarwinApplication> activator(), [
  2. FutureOr<void> callback(
    1. DarwinApplication
    )?
])

Implementation

Future<DarwinSystem> startApplication(FutureOr<DarwinApplication> Function() activator, [FutureOr<void> Function(DarwinApplication)? callback]) async {
  var application = await activator();
  if (callback != null) await callback.call(application);
  application.plugins.whereType<HttpPlugin>().firstOrNull?.runUnbound = true;
  application.system.prepare(application.generatedArgs, application.userArgs);
  var lateStartup = application.system.eventbus.getAsyncLine<LateStartupEvent>().subscribeNext(priority: 1024);
  application.system.start(application.generatedArgs, application.userArgs);
  await lateStartup;
  return application.system;
}