|
1 |
| -var original = require('original') |
2 | 1 | var parse = require('url').parse
|
3 | 2 | var events = require('events')
|
4 | 3 | var https = require('https')
|
@@ -157,8 +156,8 @@ function EventSource (url, eventSourceInitDict) {
|
157 | 156 | _emit('error', new Event('error', {status: res.statusCode, message: res.statusMessage}))
|
158 | 157 | return
|
159 | 158 | }
|
160 |
| - var prevOrigin = original(url) |
161 |
| - var nextOrigin = original(location) |
| 159 | + var prevOrigin = getOrigin(url) |
| 160 | + var nextOrigin = getOrigin(location) |
162 | 161 | hasNewOrigin = prevOrigin !== nextOrigin
|
163 | 162 | if (res.statusCode === 307) reconnectUrl = url
|
164 | 163 | url = location
|
@@ -280,7 +279,7 @@ function EventSource (url, eventSourceInitDict) {
|
280 | 279 | _emit(type, new MessageEvent(type, {
|
281 | 280 | data: data.slice(0, -1), // remove trailing newline
|
282 | 281 | lastEventId: lastEventId,
|
283 |
| - origin: original(url) |
| 282 | + origin: getOrigin(url) |
284 | 283 | }))
|
285 | 284 | data = ''
|
286 | 285 | }
|
@@ -471,3 +470,16 @@ function removeUnsafeHeaders (headers) {
|
471 | 470 |
|
472 | 471 | return safe
|
473 | 472 | }
|
| 473 | + |
| 474 | +/** |
| 475 | + * Transform an URL to a valid origin value. |
| 476 | + * |
| 477 | + * @param {String|Object} url URL to transform to it's origin. |
| 478 | + * @returns {String} The origin. |
| 479 | + * @api private |
| 480 | + */ |
| 481 | +function getOrigin (url) { |
| 482 | + if (typeof url === 'string') url = parse(url) |
| 483 | + if (!url.protocol || !url.hostname) return 'null' |
| 484 | + return (url.protocol + '//' + url.host).toLowerCase() |
| 485 | +} |
0 commit comments