on method

void Function() on(
  1. String pattern,
  2. ConsonaEventListener listener
)

Subscribes to events. Supports exact names (e.g. 'audio:play') or wildcards (e.g. '' or 'audio:').

Returns a cancel callback function.

Implementation

void Function() on(String pattern, ConsonaEventListener listener) {
  _listeners.putIfAbsent(pattern, () => {}).add(listener);
  return () {
    final set = _listeners[pattern];
    if (set != null) {
      set.remove(listener);
      if (set.isEmpty) {
        _listeners.remove(pattern);
      }
    }
  };
}