Files
cypress/packages/https-proxy/lib/util/parse.coffee
2017-04-21 10:34:19 -04:00

35 lines
870 B
CoffeeScript

url = require("url")
module.exports = {
parseHost: (hostString, defaultPort) ->
if m = hostString.match(/^http:\/\/(.*)/)
parsedUrl = url.parse(hostString)
return {
host: parsedUrl.hostname
port: parsedUrl.port
}
hostPort = hostString.split(':')
host = hostPort[0]
port = if hostPort.length is 2 then +hostPort[1] else defaultPort
return {
host: host
port: port
}
hostAndPort: (reqUrl, headers, defaultPort) ->
host = headers.host
hostPort = @parseHost(host, defaultPort)
## this handles paths which include the full url. This could happen if it's a proxy
if m = reqUrl.match(/^http:\/\/([^\/]*)\/?(.*)$/)
parsedUrl = url.parse(reqUrl)
hostPort.host = parsedUrl.hostname
hostPort.port = parsedUrl.port
reqUrl = parsedUrl.path
hostPort
}