From 1279a94e9e7de697e72fbff015ff8cca7c347cba Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 15 May 2022 18:42:38 +0530 Subject: [PATCH] refactor(script): changes address cleanup --- scripts/register-domains.js | 8 +++++++- utils/domain-service.js | 29 +++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 9 deletions(-) diff --git a/scripts/register-domains.js b/scripts/register-domains.js index 56a1f2688..c7f5b56a4 100644 --- a/scripts/register-domains.js +++ b/scripts/register-domains.js @@ -6,6 +6,12 @@ const { getDomains: gd } = require('../utils/get-domain'); // Allow TXT records while publishing (for pcl validation) const getRecords = R.compose(R.toPairs, R.pick(VALID_RECORD_TYPES)); +const address = (type, url) => { + if ('URL' === type) return `${url}`.replace(/\/$/g, ''); + if ('TXT' === type) return url; + return (type === 'CNAME' ? `${url}`.toLowerCase() : `${url}`).replace(/[/.]$/g, ''); +}; + const toHostList = R.chain(data => { const rs = getRecords(data.record); @@ -13,7 +19,7 @@ const toHostList = R.chain(data => { (Array.isArray(urls) ? urls : [urls]).map((url, index) => ({ name: data.name, type: recordType, - address: (recordType === 'CNAME' ? `${url}`.toLowerCase() : `${url}`).replace(/\/$/g, ''), + address: address(recordType, url), ttl: TTL, ...(recordType === 'MX' ? { priority: index + 20 } : {}) })) diff --git a/utils/domain-service.js b/utils/domain-service.js index 28504f0fd..3732712de 100644 --- a/utils/domain-service.js +++ b/utils/domain-service.js @@ -22,15 +22,27 @@ const recordToZone = ({ name, type, address, id, priority }) => ({ ...(type === 'TXT' ? { txtdata: address } : {}), }); -const cleanName = name => name === DOMAIN_DOMAIN ? '@' : `${name}`.replace(new RegExp(`\\.${DOMAIN_DOMAIN}\\.?$`), '').toLowerCase(); +const cleanName = name => + name === DOMAIN_DOMAIN ? '@' : `${name}`.replace(new RegExp(`\\.${DOMAIN_DOMAIN}\\.?$`), '').toLowerCase(); -const zoneToRecord = ({ name, type, cname, address, priority, preference, exchange, record, line: id }) => ({ - id, - name: cleanName(name), - type: `${type}`, - address: `${exchange || cname || address || record}`.replace(/\.$/g, '').toLowerCase(), - priority: priority || preference, -}); +const zoneToRecord = ({ + name, + type, + cname, + address, + priority, + preference, + exchange, + record, + line: id +}) => + ({ + id, + name: cleanName(name), + type: `${type}`, + address: `${exchange || cname || address || record}`.replace(/\.$/g, '').toLowerCase(), + priority: priority || preference, + }); const redirectionToRecord = ({ domain, destination }) => ({ id: domain, name: cleanName(domain), @@ -121,6 +133,7 @@ const getDomainService = ({ cpanel }) => { const updateHosts = async hosts => { const remoteHostList = await getHosts(); const { add, remove } = diffRecords(remoteHostList, hosts); + console.log(`Adding ${add.length}; Removing ${remove.length}`) await executeBatch([ ...removeRecords(remove),