From 1417a4069b51aa3b1d7c239c35bae4ac9da651b8 Mon Sep 17 00:00:00 2001 From: Sameh-farouk Date: Thu, 16 Dec 2021 17:38:33 +0200 Subject: [PATCH 1/2] Adding regex domain name validator --- src/elements/caprover/Caprover.wc.svelte | 5 +++-- src/utils/validateDomainName.ts | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 src/utils/validateDomainName.ts diff --git a/src/elements/caprover/Caprover.wc.svelte b/src/elements/caprover/Caprover.wc.svelte index 7afc5bd5..328bacd6 100644 --- a/src/elements/caprover/Caprover.wc.svelte +++ b/src/elements/caprover/Caprover.wc.svelte @@ -17,6 +17,7 @@ import Modal from "../../components/DeploymentModal.svelte"; import hasEnoughBalance from "../../utils/hasEnoughBalance"; import validateName from "../../utils/validateName"; +import validateDomainName from "../../utils/validateDomainName"; const data = new Caprover(); let loading = false; @@ -39,11 +40,11 @@ { label: "CPU", symbol: "cpu", placeholder: "CPU", type: "number" }, { label: "Memory (MB)", symbol: 'memory', placeholder: "Memory in MB", type: "number" }, { label: "Disk Size (GB)", symbol: "diskSize", placeholder: "Disk size in GB", type: "number" }, - { label: "Domain", symbol: "domain", placeholder: "domain configured in your name provider.", type: "text" }, + { label: "Domain", symbol: "domain", placeholder: "domain configured in your name provider.", type: "text", validator: validateDomainName, invalid: false }, { label: "Password", symbol: "password", placeholder: "Caprover new password", type: "text" }, ]; - $: disabled = ((loading || !data.valid) && !(success || failed)) || !profile || status !== "valid" || fields[0].invalid; // prettier-ignore + $: disabled = ((loading || !data.valid) && !(success || failed)) || !profile || status !== "valid" || fields[0].invalid || fields[4].invalid; // prettier-ignore let message: string; let modalData: Object; async function deployCaproverHandler() { diff --git a/src/utils/validateDomainName.ts b/src/utils/validateDomainName.ts new file mode 100644 index 00000000..abce0f8c --- /dev/null +++ b/src/utils/validateDomainName.ts @@ -0,0 +1,7 @@ +// regex pattern for validating domain name +const DOMAIN_NAME_REGEX = /^\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,6}\b$/ + +// prettier-ignore +export default function validateDomainName(domain: string): string | void { + if (!DOMAIN_NAME_REGEX.test(domain)) return "this is not like a valid domain name"; +} From c5980d7afe6eca8d164710b91bf76316b999b5b9 Mon Sep 17 00:00:00 2001 From: Sameh-farouk Date: Thu, 16 Dec 2021 18:26:38 +0200 Subject: [PATCH 2/2] regex fix --- src/utils/validateDomainName.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/utils/validateDomainName.ts b/src/utils/validateDomainName.ts index abce0f8c..21263669 100644 --- a/src/utils/validateDomainName.ts +++ b/src/utils/validateDomainName.ts @@ -1,7 +1,7 @@ -// regex pattern for validating domain name -const DOMAIN_NAME_REGEX = /^\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,6}\b$/ +// regex patter for validating domain name +const DOMAIN_NAME_REGEX = /^\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b$/ // prettier-ignore export default function validateDomainName(domain: string): string | void { - if (!DOMAIN_NAME_REGEX.test(domain)) return "this is not like a valid domain name"; + if (!DOMAIN_NAME_REGEX.test(domain)) return "Domain name is not valid"; }