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.
		
		
		
		
			
				
					30 lines
				
				808 B
			
		
		
			
		
	
	
					30 lines
				
				808 B
			| 
								 
											4 years ago
										 
									 | 
							
								'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;
							 |