summaryrefslogtreecommitdiff
path: root/web/source/settings/lib/util/formvalidators.ts
diff options
context:
space:
mode:
Diffstat (limited to 'web/source/settings/lib/util/formvalidators.ts')
-rw-r--r--web/source/settings/lib/util/formvalidators.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/web/source/settings/lib/util/formvalidators.ts b/web/source/settings/lib/util/formvalidators.ts
index c509cf59d..358db616c 100644
--- a/web/source/settings/lib/util/formvalidators.ts
+++ b/web/source/settings/lib/util/formvalidators.ts
@@ -46,3 +46,22 @@ export function formDomainValidator(domain: string): string {
return "invalid domain";
}
+
+export function urlValidator(urlStr: string): string {
+ if (urlStr.length === 0) {
+ return "";
+ }
+
+ let url: URL;
+ try {
+ url = new URL(urlStr);
+ } catch (e) {
+ return e.message;
+ }
+
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
+ return `invalid protocol, must be http or https`;
+ }
+
+ return formDomainValidator(url.host);
+}