From 4b4f52cc5c2a6a9a821461642d89374c5d3a1c23 Mon Sep 17 00:00:00 2001 From: Nathan Date: Wed, 7 Feb 2024 15:25:43 +0100 Subject: [PATCH] Remove any carriage returns so lines parse correctly Some SSE streams include `\r\n` which trips up the `String.split/2` call --- lib/eventsource_ex.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/eventsource_ex.ex b/lib/eventsource_ex.ex index b939c5f..f95baa5 100644 --- a/lib/eventsource_ex.ex +++ b/lib/eventsource_ex.ex @@ -55,7 +55,7 @@ defmodule EventsourceEx do def handle_info(%{chunk: data}, %{parent: parent, message: message, prev_chunk: prev_chunk}) do data = if prev_chunk, do: prev_chunk <> data, else: data - lines = String.split(data, ~r/^/m, trim: true) + lines = data |> String.replace("\r", "") |> String.split(~r/^/m, trim: true) {prev_chunk, lines} = if not String.ends_with?(data, "\n") do