truncateStream method

  1. @override
Future<void> truncateStream(
  1. StreamName name,
  2. ExpectedStreamVersion expected,
  3. StreamTruncatePosition truncate
)
override

Truncate all events on the stream upto given position Parameter name identifies stream to truncate events from. Parameter truncate is the position on stream to truncate events from. Use parameter expected to indicate which stream version that was last seen. Is used to perform consistency checks based on optimistic locking

Implementation

@override
Future<void> truncateStream(
  StreamName name,
  ExpectedStreamVersion expected,
  StreamTruncatePosition truncate,
) async {
  try {
    final metadata = StreamMetadata(
      truncateBefore: truncate.asStreamPosition(),
    );
    await _anyOrNot(
      expected,
      whenAny: () => client.setStreamMetadata(
        StreamState.any(name.value),
        metadata,
      ),
      otherwise: () => client.setStreamMetadata(
        StreamState.exists(
          name.value,
          revision: expected.asStreamRevision(),
        ),
        metadata,
      ),
    );
  } on StreamNotFoundException {
    throw $e.StreamNotFoundException(name);
  }
}