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);
|
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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue