From 40483fea1aa0be029bf63bf3d59867e555a0864b Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 16:00:09 +0530 Subject: [PATCH 1/5] add: logic for tld, apex domain checks. --- package.json | 3 ++- pnpm-lock.yaml | 16 ++++++++++++++++ src/lib/helpers/tlds.ts | 8 ++++++++ .../domains/add-domain/+page.svelte | 9 ++++----- .../settings/domains/add-domain/+page.svelte | 9 ++++----- .../site-[site]/domains/add-domain/+page.svelte | 9 ++++----- 6 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 src/lib/helpers/tlds.ts diff --git a/package.json b/package.json index 851cb4490..83b7b7981 100644 --- a/package.json +++ b/package.json @@ -83,7 +83,8 @@ "typescript": "^5.8.2", "typescript-eslint": "^8.30.1", "vite": "^6.2.3", - "vitest": "^3.0.0" + "vitest": "^3.0.0", + "tldts": "^7.0.7" }, "pnpm": { "onlyBuiltDependencies": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 92351d55c..b14eb716f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -177,6 +177,9 @@ importers: svelte-sequential-preprocessor: specifier: ^2.0.2 version: 2.0.2 + tldts: + specifier: ^7.0.7 + version: 7.0.7 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -3239,10 +3242,17 @@ packages: tldts-core@6.1.85: resolution: {integrity: sha512-DTjUVvxckL1fIoPSb3KE7ISNtkWSawZdpfxGxwiIrZoO6EbHVDXXUIlIuWympPaeS+BLGyggozX/HTMsRAdsoA==} + tldts-core@7.0.7: + resolution: {integrity: sha512-ECqb8imSroX1UmUuhRBNPkkmtZ8mHEenieim80UVxG0M5wXVjY2Fp2tYXCPvk+nLy1geOhFpeD5YQhM/gF63Jg==} + tldts@6.1.85: resolution: {integrity: sha512-gBdZ1RjCSevRPFix/hpaUWeak2/RNUZB4/8frF1r5uYMHjFptkiT0JXIebWvgI/0ZHXvxaUDDJshiA0j6GdL3w==} hasBin: true + tldts@7.0.7: + resolution: {integrity: sha512-ETNXj36ql5BXDa4VVJk3wgqansg8TI1Yqo217twSAPjyDnh/b2T+XzrI0ftn6EnzVPbXpMTZHOWj5s3a8/uGPA==} + hasBin: true + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -6834,10 +6844,16 @@ snapshots: tldts-core@6.1.85: {} + tldts-core@7.0.7: {} + tldts@6.1.85: dependencies: tldts-core: 6.1.85 + tldts@7.0.7: + dependencies: + tldts-core: 7.0.7 + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts new file mode 100644 index 000000000..d7421b0d2 --- /dev/null +++ b/src/lib/helpers/tlds.ts @@ -0,0 +1,8 @@ +import { parse } from 'tldts'; + +/** + * Returns the apex/root domain from a full domain string. + */ +export function getApexDomain(domain: string): string { + return parse(domain).domain; +} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index dd26bd21f..f2df1d77f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -20,6 +20,7 @@ import { isValueOfStringEnum } from '$lib/helpers/types.js'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/functions/function-${page.params.function}/domains`; @@ -47,14 +48,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 09ff91999..49091e243 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -11,6 +11,7 @@ import { onMount } from 'svelte'; import { isCloud } from '$lib/system'; import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/settings/domains`; @@ -27,14 +28,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index 3b053e49f..c50094ae8 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -25,6 +25,7 @@ import { ConnectRepoModal } from '$lib/components/git/index.js'; import { project } from '$routes/(console)/project-[region]-[project]/store'; import { isCloud } from '$lib/system'; + import { getApexDomain } from '$lib/helpers/tlds'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; @@ -52,14 +53,12 @@ }); async function addDomain() { - let domain = data.domains?.domains.find((d) => d.domain === domainName); + const apexDomain = getApexDomain(domain); + let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { try { - domain = await sdk.forConsole.domains.create( - $project.teamId, - domainName.toLocaleLowerCase() - ); + domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { addNotification({ type: 'error', From 417feedeffaa3ddb6b26484c25b717941c4617cd Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 16:46:25 +0530 Subject: [PATCH 2/5] update: var names. --- .../function-[function]/domains/add-domain/+page.svelte | 2 +- .../settings/domains/add-domain/+page.svelte | 4 ++-- .../sites/site-[site]/domains/add-domain/+page.svelte | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index f2df1d77f..8e70f0618 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -48,7 +48,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 49091e243..1eb1695e6 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -28,7 +28,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { @@ -47,7 +47,7 @@ try { const rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createAPIRule(domainName); + .proxy.createAPIRule(domainName.toLocaleLowerCase()); if (rule?.status === 'verified') { await goto(routeBase); await invalidate(Dependencies.DOMAINS); diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index c50094ae8..ce7ff80ec 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -53,7 +53,7 @@ }); async function addDomain() { - const apexDomain = getApexDomain(domain); + const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); if (!domain && isCloud) { From a0eeee5ee873a516842c5e220c1edf218be948df Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:01:34 +0530 Subject: [PATCH 3/5] improve: subdomain logic. --- src/lib/helpers/tlds.ts | 15 ++++++++++++++- .../add-domain/verify-[domain]/+page.svelte | 3 ++- .../add-domain/verify-[domain]/+page.svelte | 3 ++- .../add-domain/verify-[domain]/+page.svelte | 4 +++- .../site-[site]/domains/retryDomainModal.svelte | 5 ++--- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index d7421b0d2..7eb8e32cc 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -4,5 +4,18 @@ import { parse } from 'tldts'; * Returns the apex/root domain from a full domain string. */ export function getApexDomain(domain: string): string { - return parse(domain).domain; + return parse(domain).domain || ''; +} + +/** + * Checks whether the given domain is a subdomain. + */ +export function isASubdomain(domain: string | null): boolean { + if (!domain) return false; + + const { domain: apex, subdomain } = parse(domain); + if (!apex) return false; + if (subdomain === 'www') return false; + + return !!subdomain; } diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index f8b03eb86..9e3cac8f3 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index ac027c30b..9de063361 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index cc27aa40b..236abcbfb 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,6 +20,7 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; + import { isASubdomain } from '$lib/helpers/tlds'; import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -27,9 +28,10 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived(page.params.domain?.split('.')?.length >= 3); + let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); + $effect(() => { if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index f18c1b664..0b1981d9e 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -11,6 +11,7 @@ import { consoleVariables } from '$routes/(console)/store'; import { isCloud } from '$lib/system'; import { page } from '$app/state'; + import { isASubdomain } from '$lib/helpers/tlds'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; @@ -22,9 +23,7 @@ selectedDomain: Models.ProxyRule; } = $props(); - let isSubDomain = $derived.by(() => - selectedDomain?.domain?.length ? selectedDomain?.domain?.split('.')?.length >= 3 : false - ); + let isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { From f5501f30a57f72bc932e5a470d83a923bdff4084 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:13:33 +0530 Subject: [PATCH 4/5] address comments. --- src/lib/helpers/tlds.ts | 4 ++-- .../function-[function]/domains/add-domain/+page.svelte | 2 +- .../domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../settings/domains/add-domain/+page.svelte | 2 +- .../settings/domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../sites/site-[site]/domains/add-domain/+page.svelte | 2 +- .../domains/add-domain/verify-[domain]/+page.svelte | 2 +- .../sites/site-[site]/domains/retryDomainModal.svelte | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index 7eb8e32cc..d4eaecfbc 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -3,8 +3,8 @@ import { parse } from 'tldts'; /** * Returns the apex/root domain from a full domain string. */ -export function getApexDomain(domain: string): string { - return parse(domain).domain || ''; +export function getApexDomain(domain: string): string|null { + return parse(domain).domain; } /** diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index 8e70f0618..e7a55a956 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -51,7 +51,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index 9e3cac8f3..be84fec9f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte index 1eb1695e6..781c68bb2 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/+page.svelte @@ -31,7 +31,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index 9de063361..9866c94f0 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index ce7ff80ec..c57b7c2b6 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -56,7 +56,7 @@ const apexDomain = getApexDomain(domainName); let domain = data.domains?.domains.find((d) => d.domain === apexDomain); - if (!domain && isCloud) { + if (apexDomain && !domain && isCloud) { try { domain = await sdk.forConsole.domains.create($project.teamId, apexDomain); } catch (error) { diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index 236abcbfb..108d34030 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -28,7 +28,7 @@ let { data } = $props(); const ruleId = page.url.searchParams.get('rule'); - let isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); + const isSubDomain = $derived.by(() => isASubdomain(page.params.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index 0b1981d9e..389cbc2f7 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -23,7 +23,7 @@ selectedDomain: Models.ProxyRule; } = $props(); - let isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); + const isSubDomain = $derived.by(() => isASubdomain(selectedDomain?.domain)); let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { From b18aa1ccb55e672918866b72b1000bdf8f720ea6 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 22 May 2025 17:15:10 +0530 Subject: [PATCH 5/5] lint. --- src/lib/helpers/tlds.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index d4eaecfbc..23adffb4c 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -3,7 +3,7 @@ import { parse } from 'tldts'; /** * Returns the apex/root domain from a full domain string. */ -export function getApexDomain(domain: string): string|null { +export function getApexDomain(domain: string): string | null { return parse(domain).domain; }