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…
Reference in a new issue