Add URL validation (#4148)

This commit is contained in:
Acid Chicken (硫酸鶏) 2019-02-06 13:37:20 +09:00 committed by Aya Morisawa
parent 08c0be11b2
commit 1974d8f58b
1 changed files with 9 additions and 2 deletions

View File

@ -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;
} }