mirror of
				https://codeberg.org/buzzcode2007/FCC-Project-URLShortener.git
				synced 2025-05-21 03:06:34 +00:00 
			
		
		
		
	Import and modify URL tester
from https://codeberg.org/buzzcode2007/ShopAI-Extension/src/branch/development-chromium/src/scripts/utils/URLs.js
This commit is contained in:
		
							parent
							
								
									31e074a5a8
								
							
						
					
					
						commit
						33a4463994
					
				
					 1 changed files with 54 additions and 0 deletions
				
			
		
							
								
								
									
										54
									
								
								scripts/utilities/URLs.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								scripts/utilities/URLs.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,54 @@ | |||
| /* | ||||
| Custom URL tools for ShopAI | ||||
| */ | ||||
| 
 | ||||
| class URLs { | ||||
| 	/* | ||||
| 	This constructor creates a URL object and is the same as new URL().  | ||||
| 
 | ||||
| 	@param {string} PATH the URL | ||||
| 	*/ | ||||
| 	constructor (PATH) { | ||||
| 		const URL_OBJECT = new URL(PATH); | ||||
| 
 | ||||
| 		/* Copy the object's data into this object. */ | ||||
| 		(Object.keys(URL_OBJECT)).forEach((NAME, VALUE) => { | ||||
| 			this[NAME] = VALUE; | ||||
| 		}); | ||||
| 	}; | ||||
| 
 | ||||
| 	/* | ||||
| 	Remove the protocol from the URL. | ||||
| 
 | ||||
| 	@param {string} URL the URL to clean | ||||
| 	*/ | ||||
| 	static clean(PATH) { | ||||
| 		return((PATH.trim().replace(/(^\w+:|^)\/\//, ``).split(`?`))[0]); | ||||
| 	} | ||||
| 
 | ||||
| 	/* | ||||
| 	Check if the URL is valid through checking its patterns.  | ||||
| 	 | ||||
| 	@param {string} location the URL to check | ||||
| 	@return {boolean} the state | ||||
| 	*/ | ||||
| 	static test(location) { | ||||
| 		let STATE = false; | ||||
| 		 | ||||
| 		// Convert to URL object.
 | ||||
| 		 | ||||
| 			STATE = !!(new URL(location)); | ||||
| 
 | ||||
| 			// Fail the URLs that claim to be invalid. 
 | ||||
| 			location.split(`.`).forEach((ENTRY) => { | ||||
| 				[`invalidTLD`].forEach((FRAGMENT) => { | ||||
| 					STATE = (STATE) ? !(ENTRY.includes(FRAGMENT)) : false; | ||||
| 				}) | ||||
| 			}) | ||||
| 		 | ||||
| 
 | ||||
| 		return STATE; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| module.exports = {URLs}; | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue