nyEvent<T> function

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

Event helper

Implementation

Future<void> 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);
}