Add URL validation (#4148)
This commit is contained in:
		
							parent
							
								
									08c0be11b2
								
							
						
					
					
						commit
						1974d8f58b
					
				
					 1 changed files with 9 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -47,14 +47,21 @@ export default function load() {
 | 
			
		|||
	return Object.assign(config, mixin);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function validateUrl(url: string) {
 | 
			
		||||
function tryCreateUrl(url: string) {
 | 
			
		||||
	try {
 | 
			
		||||
		return new URL(url);
 | 
			
		||||
	} catch (e) {
 | 
			
		||||
		throw `url="${url}" is not a valid URL`;
 | 
			
		||||
		throw `url="${url}" is not a valid URL.`;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function validateUrl(url: string) {
 | 
			
		||||
	const result = tryCreateUrl(url);
 | 
			
		||||
	if (result.pathname.replace('/', '').length) throw `url="${url}" is not a valid URL, has a pathname.`;
 | 
			
		||||
	if (!url.includes(result.host)) throw `url="${url}" is not a valid URL, has an invalid hostname.`;
 | 
			
		||||
	return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function normalizeUrl(url: string) {
 | 
			
		||||
	return url.endsWith('/') ? url.substr(0, url.length - 1) : url;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue