mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-11 09:20:20 -06:00
50 lines
978 B
JavaScript
50 lines
978 B
JavaScript
const url = require('url')
|
|
|
|
module.exports = {
|
|
parseHost (hostString, defaultPort) {
|
|
let m
|
|
|
|
m = hostString.match(/^http:\/\/(.*)/)
|
|
|
|
if (m) {
|
|
const parsedUrl = url.parse(hostString)
|
|
|
|
return {
|
|
host: parsedUrl.hostname,
|
|
port: parsedUrl.port,
|
|
}
|
|
}
|
|
|
|
const hostPort = hostString.split(':')
|
|
const host = hostPort[0]
|
|
const port = hostPort.length === 2 ? +hostPort[1] : defaultPort
|
|
|
|
return {
|
|
host,
|
|
port,
|
|
}
|
|
},
|
|
|
|
hostAndPort (reqUrl, headers, defaultPort) {
|
|
let m
|
|
const {
|
|
host,
|
|
} = headers
|
|
|
|
const hostPort = this.parseHost(host, defaultPort)
|
|
|
|
// this handles paths which include the full url. This could happen if it's a proxy
|
|
m = reqUrl.match(/^http:\/\/([^\/]*)\/?(.*)$/)
|
|
|
|
if (m) {
|
|
const parsedUrl = url.parse(reqUrl)
|
|
|
|
hostPort.host = parsedUrl.hostname
|
|
hostPort.port = parsedUrl.port
|
|
reqUrl = parsedUrl.path
|
|
}
|
|
|
|
return hostPort
|
|
},
|
|
}
|