@@ -43,13 +43,13 @@ class Stream {
43
43
} ,
44
44
} ) ;
45
45
const reader = response . body . getReader ( ) ;
46
- let decoder = new TextDecoder ( ) ;
46
+ const decoder = new TextDecoder ( ) ;
47
47
let eventBuffer = '' ;
48
48
49
49
const processChunk = ( chunk ) => {
50
50
eventBuffer += decoder . decode ( chunk , { stream : true } ) ;
51
- let eolIndex ;
52
- while ( ( eolIndex = eventBuffer . indexOf ( '\n' ) ) >= 0 ) {
51
+ let eolIndex = eventBuffer . indexOf ( '\n' ) ;
52
+ while ( eolIndex >= 0 ) {
53
53
const line = eventBuffer . slice ( 0 , eolIndex ) . trim ( ) ;
54
54
eventBuffer = eventBuffer . slice ( eolIndex + 1 ) ;
55
55
if ( line === '' ) {
@@ -59,8 +59,10 @@ class Stream {
59
59
eventBuffer = '' ;
60
60
} else {
61
61
// Accumulate data
62
- eventBuffer += line + '\n' ;
62
+ eventBuffer += ` ${ line } \n`
63
63
}
64
+
65
+ eolIndex = eventBuffer . indexOf ( '\n' ) ;
64
66
}
65
67
} ;
66
68
@@ -81,15 +83,19 @@ class Stream {
81
83
82
84
parseEvent ( rawData ) {
83
85
const lines = rawData . trim ( ) . split ( '\n' ) ;
84
- let event = 'message' , data = '' , id = null , retry = null ;
86
+ let event = 'message' ;
87
+ let data = '' ;
88
+ let id = null ;
89
+ let retry = null ;
90
+
85
91
for ( const line of lines ) {
86
92
const [ fieldName , value ] = line . split ( / : ( .* ) / , 2 ) ;
87
93
switch ( fieldName ) {
88
94
case 'event' :
89
95
event = value . trim ( ) ;
90
96
break ;
91
97
case 'data' :
92
- data += value . trim ( ) + '\n' ;
98
+ data += ` ${ value . trim ( ) } \n` ;
93
99
break ;
94
100
case 'id' :
95
101
id = value . trim ( ) ;
0 commit comments