mirror of
				https://github.com/crazy-max/ghaction-upx.git
				synced 2025-11-04 04:58:11 -07:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"use strict";
 | 
						|
const hasToStringTag = require("has-to-string-tag-x");
 | 
						|
const isObject = require("is-object");
 | 
						|
 | 
						|
const toString = Object.prototype.toString;
 | 
						|
const urlClass = "[object URL]";
 | 
						|
 | 
						|
const hash = "hash";
 | 
						|
const host = "host";
 | 
						|
const hostname = "hostname";
 | 
						|
const href = "href";
 | 
						|
const password = "password";
 | 
						|
const pathname = "pathname";
 | 
						|
const port = "port";
 | 
						|
const protocol = "protocol";
 | 
						|
const search = "search";
 | 
						|
const username = "username";
 | 
						|
 | 
						|
 | 
						|
 | 
						|
const isURL = (url, supportIncomplete/*=false*/) =>
 | 
						|
{
 | 
						|
	if (!isObject(url)) return false;
 | 
						|
 | 
						|
	// Native implementation in older browsers
 | 
						|
	if (!hasToStringTag && toString.call(url) === urlClass) return true;
 | 
						|
 | 
						|
	if (!(href     in url)) return false;
 | 
						|
	if (!(protocol in url)) return false;
 | 
						|
	if (!(username in url)) return false;
 | 
						|
	if (!(password in url)) return false;
 | 
						|
	if (!(hostname in url)) return false;
 | 
						|
	if (!(port     in url)) return false;
 | 
						|
	if (!(host     in url)) return false;
 | 
						|
	if (!(pathname in url)) return false;
 | 
						|
	if (!(search   in url)) return false;
 | 
						|
	if (!(hash     in url)) return false;
 | 
						|
 | 
						|
	if (supportIncomplete !== true)
 | 
						|
	{
 | 
						|
		if (!isObject(url.searchParams)) return false;
 | 
						|
 | 
						|
		// TODO :: write a separate isURLSearchParams ?
 | 
						|
	}
 | 
						|
 | 
						|
	return true;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
isURL.lenient = url =>
 | 
						|
{
 | 
						|
	return isURL(url, true);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
module.exports = isURL;
 |