parseSseEvents<T> function

ParseSseEventsResult<T> parseSseEvents<T>(
  1. String input,
  2. T dataParser(
    1. String
    )
)

Implementation

ParseSseEventsResult<T> parseSseEvents<T>(
  String input,
  T Function(String) dataParser,
) {
  final stringParts = input.split("\n\n");
  final endingPart = stringParts.removeLast();
  final result = <SseEvent<T>>[];
  for (final part in stringParts) {
    final event = parseSseEvent(part);
    if (event == null) {
      print("WARN: Invalid message data $event");
      continue;
    }
    result.add(SseEvent<T>.fromString(part, dataParser));
  }
  return ParseSseEventsResult(
    events: result,
    leftoverData: endingPart,
  );
}