boot method

  1. @override
Future<void> boot(
  1. Container container
)
override

Optional boot method called after all providers are registered.

This method is called after all providers have been registered, making it safe to resolve dependencies that might be registered by other providers.

Implementation

@override
Future<void> boot(Container container) async {
  Engine? engine;
  if (container.has<Engine>()) {
    engine = await container.make<Engine>();
    if (container.has<Config>()) {
      _applyRoutingConfig(engine, container.get<Config>());
    }
  }
  _engine = engine;

  final eventManager = await container.make<EventManager>();

  if (!container.has<SignalHub>()) {
    container.instance<SignalHub>(SignalHub(eventManager));
  }

  // Set up routing event listeners
  eventManager.listen((BeforeRoutingEvent event) {});

  eventManager.listen((RouteMatchedEvent event) {});

  eventManager.listen((RouteNotFoundEvent event) {});

  eventManager.listen((RoutingErrorEvent event) {});

  eventManager.listen((AfterRoutingEvent event) {});

  eventManager.listen<RouteCacheInvalidatedEvent>((_) {
    _engine?.invalidateRoutes();
  });
}