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.
		
		
		
		
			
				
					39 lines
				
				753 B
			
		
		
			
		
	
	
					39 lines
				
				753 B
			| 
								 
											4 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Check if we're required to add a port number.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @see https://url.spec.whatwg.org/#default-port
							 | 
						||
| 
								 | 
							
								 * @param {Number|String} port Port number we need to check
							 | 
						||
| 
								 | 
							
								 * @param {String} protocol Protocol we need to check against.
							 | 
						||
| 
								 | 
							
								 * @returns {Boolean} Is it a default port for the given protocol
							 | 
						||
| 
								 | 
							
								 * @api private
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								module.exports = function required(port, protocol) {
							 | 
						||
| 
								 | 
							
								  protocol = protocol.split(':')[0];
							 | 
						||
| 
								 | 
							
								  port = +port;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!port) return false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  switch (protocol) {
							 | 
						||
| 
								 | 
							
								    case 'http':
							 | 
						||
| 
								 | 
							
								    case 'ws':
							 | 
						||
| 
								 | 
							
								    return port !== 80;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'https':
							 | 
						||
| 
								 | 
							
								    case 'wss':
							 | 
						||
| 
								 | 
							
								    return port !== 443;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'ftp':
							 | 
						||
| 
								 | 
							
								    return port !== 21;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'gopher':
							 | 
						||
| 
								 | 
							
								    return port !== 70;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'file':
							 | 
						||
| 
								 | 
							
								    return false;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return port !== 0;
							 | 
						||
| 
								 | 
							
								};
							 |