You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							808 B
						
					
					
				
			
		
		
	
	
							29 lines
						
					
					
						
							808 B
						
					
					
				'use strict'; | 
						|
 | 
						|
const url = require('url'); | 
						|
const ip = require('internal-ip'); | 
						|
 | 
						|
function createDomain(options, server) { | 
						|
  const protocol = options.https ? 'https' : 'http'; | 
						|
  const hostname = options.useLocalIp | 
						|
    ? ip.v4.sync() || 'localhost' | 
						|
    : options.host || 'localhost'; | 
						|
 | 
						|
  // eslint-disable-next-line no-nested-ternary | 
						|
  const port = options.socket ? 0 : server ? server.address().port : 0; | 
						|
  // use explicitly defined public url | 
						|
  // (prefix with protocol if not explicitly given) | 
						|
  if (options.public) { | 
						|
    return /^[a-zA-Z]+:\/\//.test(options.public) | 
						|
      ? `${options.public}` | 
						|
      : `${protocol}://${options.public}`; | 
						|
  } | 
						|
  // the formatted domain (url without path) of the webpack server | 
						|
  return url.format({ | 
						|
    protocol, | 
						|
    hostname, | 
						|
    port, | 
						|
  }); | 
						|
} | 
						|
 | 
						|
module.exports = createDomain;
 | 
						|
 |