events property
A stream of dispatch events received from all shards.
Implementation
// Make this late instead of a getter so only a single subscription is made, which prevents events from being parsed multiple times.
late final Stream<DispatchEvent> events = messages.transform(StreamTransformer.fromBind((messages) async* {
await for (final message in messages) {
if (message is! EventReceived) continue;
final event = message.event;
if (event is! RawDispatchEvent) continue;
final parsedEvent = parseDispatchEvent(event);
// Update the cache as needed.
client.updateCacheWith(parsedEvent);
yield parsedEvent;
}
})).asBroadcastStream();