18
18
* limitations under the License.
19
19
*/
20
20
21
+ /**
22
+ * @typedef { {[key: string]: string} } SSEHeaders
23
+ */
24
+
25
+ /**
26
+ * @typedef {Object } SSEOptions
27
+ * @property {SSEHeaders } [headers] - headers
28
+ * @property {string } [payload] - payload as a string
29
+ * @property {string } [method] - HTTP Method
30
+ * @property {boolean } [withCredentials] - flag, if credentials needed
31
+ * @property {boolean } [start] - flag, if streaming should start automatically
32
+ * @property {boolean } [debug] - debugging flag
33
+ */
34
+
35
+ /**
36
+ * @typedef {Object } _SSEvent
37
+ * @property {string } id
38
+ * @property {string } data
39
+ */
40
+
41
+ /**
42
+ * @typedef {Object } _ReadyStateEvent
43
+ * @property {number } readyState
44
+ */
45
+
46
+ /**
47
+ * @typedef {Object } _ErrorEVent
48
+ * @property {number } responseCode
49
+ * @property {string } data
50
+ */
51
+
52
+ /**
53
+ * @typedef {Event & _SSEvent } SSEvent
54
+ */
55
+
56
+ /**
57
+ * @typedef {SSEvent & _ReadyStateEvent } ReadyStateEvent
58
+ */
59
+
60
+ /**
61
+ * @typedef {SSEvent & _ErrorEVent } ErrorEvent
62
+ */
63
+
64
+ /**
65
+ * @callback Stream
66
+ * @returns {void }
67
+ */
68
+
69
+ /**
70
+ * @callback Close
71
+ * @returns {void }
72
+ */
73
+
74
+ /**
75
+ * @callback OnMessage
76
+ * @param {SSEvent } event
77
+ * @returns {void }
78
+ */
79
+
80
+ /**
81
+ * @callback OnOpen
82
+ * @param {SSEvent } event
83
+ * @returns {void }
84
+ */
85
+
86
+ /**
87
+ * @callback OnLoad
88
+ * @param {SSEvent } event
89
+ * @returns {void }
90
+ */
91
+
92
+ /**
93
+ * @callback OnReadyStateChange
94
+ * @param {ReadyStateEvent } event
95
+ * @returns {void }
96
+ */
97
+
98
+ /**
99
+ * @callback OnError
100
+ * @param {ErrorEvent } event
101
+ * @returns {void }
102
+ */
103
+
104
+ /**
105
+ * @callback OnAbort
106
+ * @param {SSEvent } event
107
+ * @returns {void }
108
+ */
109
+
110
+ /**
111
+ * @typedef {Object } SSE
112
+ * @property {SSEHeaders } headers - headers
113
+ * @property {string } payload - Payload to send in the XHR request
114
+ * @property {string } method - HTTP Method
115
+ * @property {boolean } withCredentials - flag, if credentials needed
116
+ * @property {boolean } debug - debugging flag
117
+ * @property {string } FIELD_SEPARATOR
118
+ * @property {Record<string, Function[]> } listeners
119
+ * @property {XMLHttpRequest | null } xhr
120
+ * @property {number } readyState
121
+ * @property {number } progress
122
+ * @property {string } chunk
123
+ * @property {-1 } INITIALIZING
124
+ * @property {0 } CONNECTING
125
+ * @property {1 } OPEN
126
+ * @property {2 } CLOSED
127
+ * @property {AddEventListener } addEventListener
128
+ * @property {RemoveEventListener } removeEventListener
129
+ * @property {DispatchEvent } dispatchEvent
130
+ * @property {Stream } stream
131
+ * @property {Close } close
132
+ * @property {OnMessage } onmessage
133
+ * @property {OnOpen } onopen
134
+ * @property {OnLoad } onload
135
+ * @property {OnReadyStateChange } onreadystatechange
136
+ * @property {OnError } onerror
137
+ * @property {OnAbort } onabort
138
+ */
21
139
22
140
/**
23
141
* @type SSE
@@ -58,7 +176,9 @@ var SSE = function (url, options) {
58
176
this . lastEventId = '' ;
59
177
60
178
/**
61
- * @type AddEventListener
179
+ * @param {string } type
180
+ * @param {EventListener } listener
181
+ * @returns {void }
62
182
*/
63
183
this . addEventListener = function ( type , listener ) {
64
184
if ( this . listeners [ type ] === undefined ) {
@@ -71,7 +191,9 @@ var SSE = function (url, options) {
71
191
} ;
72
192
73
193
/**
74
- * @type RemoveEventListener
194
+ * @param {string } type
195
+ * @param {EventListener } listener
196
+ * @returns {void }
75
197
*/
76
198
this . removeEventListener = function ( type , listener ) {
77
199
if ( this . listeners [ type ] === undefined ) {
@@ -92,7 +214,8 @@ var SSE = function (url, options) {
92
214
} ;
93
215
94
216
/**
95
- * @type DispatchEvent
217
+ * @param {Event } e
218
+ * @returns {boolean }
96
219
*/
97
220
this . dispatchEvent = function ( e ) {
98
221
if ( ! e ) {
@@ -137,6 +260,7 @@ var SSE = function (url, options) {
137
260
this . dispatchEvent ( event ) ;
138
261
} ;
139
262
263
+ /** @private */
140
264
this . _onStreamFailure = function ( e ) {
141
265
const event = new CustomEvent ( 'error' ) ;
142
266
event . responseCode = e . currentTarget . status ;
@@ -145,6 +269,7 @@ var SSE = function (url, options) {
145
269
this . _markClosed ( ) ;
146
270
}
147
271
272
+ /** @private */
148
273
this . _onStreamAbort = function ( ) {
149
274
this . dispatchEvent ( new CustomEvent ( 'abort' ) ) ;
150
275
this . _markClosed ( ) ;
@@ -191,6 +316,8 @@ var SSE = function (url, options) {
191
316
} ;
192
317
193
318
/**
319
+ * @private
320
+ *
194
321
* Parse a received SSE event chunk into a constructed event object.
195
322
*
196
323
* Reference: https://html.spec.whatwg.org/multipage/server-sent-events.html#dispatchMessage
@@ -245,6 +372,7 @@ var SSE = function (url, options) {
245
372
return event ;
246
373
} ;
247
374
375
+ /** @private */
248
376
this . _onReadyStateChange = function ( ) {
249
377
if ( ! this . xhr ) {
250
378
return ;
@@ -270,9 +398,9 @@ var SSE = function (url, options) {
270
398
} ;
271
399
272
400
/**
273
- * starts the streaming
274
- * @type Stream
275
- * @return { void }
401
+ * Starts the streaming; only needed if the start option was set to false.
402
+ *
403
+ * @type { Stream }
276
404
*/
277
405
this . stream = function ( ) {
278
406
if ( this . xhr ) {
@@ -300,9 +428,9 @@ var SSE = function (url, options) {
300
428
} ;
301
429
302
430
/**
303
- * closes the stream
304
- * @type Close
305
- * @return { void }
431
+ * Closes the stream
432
+ *
433
+ * @type { Close }
306
434
*/
307
435
this . close = function ( ) {
308
436
if ( this . readyState === SSE . CLOSED ) {
@@ -333,117 +461,4 @@ if (typeof exports !== 'undefined') {
333
461
}
334
462
335
463
// Export as an ECMAScript module
336
- export { SSE } ;
337
-
338
- /**
339
- * @typedef { {[key: string]: string} } SSEHeaders
340
- */
341
- /**
342
- * @typedef {Object } SSEOptions
343
- * @property {SSEHeaders } [headers] - headers
344
- * @property {string } [payload] - payload as a string
345
- * @property {string } [method] - HTTP Method
346
- * @property {boolean } [withCredentials] - flag, if credentials needed
347
- * @property {boolean } [start] - flag, if streaming should start automatically
348
- * @property {boolean } [debug] - debugging flag
349
- */
350
- /**
351
- * @typedef {Object } _SSEvent
352
- * @property {string } id
353
- * @property {string } data
354
- */
355
- /**
356
- * @typedef {Object } _ReadyStateEvent
357
- * @property {number } readyState
358
- */
359
- /**
360
- * @typedef {Event & _SSEvent } SSEvent
361
- */
362
- /**
363
- * @typedef {SSEvent & _ReadyStateEvent } ReadyStateEvent
364
- */
365
- /**
366
- * @callback AddEventListener
367
- * @param {string } type
368
- * @param {function } listener
369
- * @returns {void }
370
- */
371
- /**
372
- * @callback RemoveEventListener
373
- * @param {string } type
374
- * @param {function } listener
375
- * @returns {void }
376
- */
377
- /**
378
- * @callback DispatchEvent
379
- * @param {string } type
380
- * @param {function } listener
381
- * @returns {boolean }
382
- */
383
- /**
384
- * @callback Stream
385
- * @returns {void }
386
- */
387
- /**
388
- * @callback Close
389
- * @returns {void }
390
- */
391
- /**
392
- * @callback OnMessage
393
- * @param {SSEvent } event
394
- * @returns {void }
395
- */
396
- /**
397
- * @callback OnOpen
398
- * @param {SSEvent } event
399
- * @returns {void }
400
- */
401
- /**
402
- * @callback OnLoad
403
- * @param {SSEvent } event
404
- * @returns {void }
405
- */
406
- /**
407
- * @callback OnReadystatechange
408
- * @param {ReadyStateEvent } event
409
- * @returns {void }
410
- */
411
- /**
412
- * @callback OnError
413
- * @param {SSEvent } event
414
- * @returns {void }
415
- */
416
- /**
417
- * @callback OnAbort
418
- * @param {SSEvent } event
419
- * @returns {void }
420
- */
421
- /**
422
- * @typedef {Object } SSE
423
- * @property {SSEHeaders } headers - headers
424
- * @property {string } payload - payload as a string
425
- * @property {string } method - HTTP Method
426
- * @property {boolean } withCredentials - flag, if credentials needed
427
- * @property {boolean } debug - debugging flag
428
- * @property {string } FIELD_SEPARATOR
429
- * @property {Record<string, Function[]> } listeners
430
- * @property {XMLHttpRequest | null } xhr
431
- * @property {number } readyState
432
- * @property {number } progress
433
- * @property {string } chunk
434
- * @property {-1 } INITIALIZING
435
- * @property {0 } CONNECTING
436
- * @property {1 } OPEN
437
- * @property {2 } CLOSED
438
- * @property {AddEventListener } addEventListener
439
- * @property {RemoveEventListener } removeEventListener
440
- * @property {DispatchEvent } dispatchEvent
441
- * @property {Stream } stream
442
- * @property {Close } close
443
- * @property {OnMessage } onmessage
444
- * @property {OnOpen } onopen
445
- * @property {OnLoad } onload
446
- * @property {OnReadystatechange } onreadystatechange
447
- * @property {OnError } onerror
448
- * @property {OnAbort } onabort
449
- */
464
+ export { SSE } ;
0 commit comments