deliver method

  1. @override
void deliver(
  1. FreedomeEvent e
)
override

Sends an event if it matches a filter and the scope allows it.

Implementation

@override
void deliver(FreedomeEvent e) {
  if (!_acked) return;
  for (final o in _ops.entries) {
    if (o.value.any((f) => DomeTopics.matches(f, e.topic)) &&
        allowed(e.topic)) {
      _send({
        'id': o.key,
        'type': 'next',
        'payload': {
          'data': {
            'events': {
              'seq': e.seq,
              'topic': e.topic,
              'kind': e.kind,
              'ts': rfc3339Millis(e.ts),
              'data': {
                'resource': ?e.resource,
                'patch': ?e.patch,
                'revision': ?e.revision,
              },
            },
          },
        },
      });
    }
  }
}