nyEvent<T> function

dynamic nyEvent<T>({
  1. Map? params,
  2. Map<Type, NyEvent> events = const {},
  3. bool? broadcast,
})

Event helper

Implementation

nyEvent<T>(
    {Map? params,
    Map<Type, NyEvent> events = const {},
    bool? broadcast}) async {
  assert(T.toString() != 'dynamic',
      'You must provide an Event type for this method.\nE.g. event<LoginEvent>({"User": "#1 User"});');

  Map<Type, NyEvent> appEvents = events;

  Nylo? nylo;
  if (Backpack.instance.read('nylo') != null) {
    nylo = Backpack.instance.read('nylo');
  }

  if (events.isEmpty && nylo != null) {
    appEvents = nylo.getEvents();
  }

  broadcast ??= nylo?.shouldBroadcastEvents();

  assert(appEvents.containsKey(T),
      'Your config/events.dart is missing this class ${T.toString()}');

  NyEvent nyEvent = appEvents[T]!;

  // Use the extension method
  await nyEvent.fireAll(params, broadcast: broadcast ?? false);
}