Add URL validation (#4148)
This commit is contained in:
		
				
					committed by
					
						
						Aya Morisawa
					
				
			
			
				
	
			
			
			
						parent
						
							08c0be11b2
						
					
				
				
					commit
					1974d8f58b
				
			@@ -47,14 +47,21 @@ export default function load() {
 | 
				
			|||||||
	return Object.assign(config, mixin);
 | 
						return Object.assign(config, mixin);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function validateUrl(url: string) {
 | 
					function tryCreateUrl(url: string) {
 | 
				
			||||||
	try {
 | 
						try {
 | 
				
			||||||
		return new URL(url);
 | 
							return new URL(url);
 | 
				
			||||||
	} catch (e) {
 | 
						} 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) {
 | 
					function normalizeUrl(url: string) {
 | 
				
			||||||
	return url.endsWith('/') ? url.substr(0, url.length - 1) : url;
 | 
						return url.endsWith('/') ? url.substr(0, url.length - 1) : url;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user