From 2472c931ec01af96e16fb5a64b474d0cfee4b5ef Mon Sep 17 00:00:00 2001 From: Tweak Date: Tue, 22 Nov 2022 19:57:32 -0700 Subject: [PATCH] Update utils.js --- utils/utils.js | 41 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/utils/utils.js b/utils/utils.js index efe82ce..6affc06 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -1,19 +1,52 @@ const invalidDomains = require('./invalid-domains.json'); +const fs = require('fs'); -module.exports.checkIfValidIP = function(str) { +function getFiles(path) { + //get all files in path, returns arr + const allFiles = fs.readdirSync(path); + + return allFiles +} + +function getFileExtension(filename) { + //get file ext + return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined; +} + +function stripExt(filename) { + //remove file ext + return filename.substr(0, filename.lastIndexOf('.')) +} + +function checkIfValidIP(str) { // Check if the IP address is valid const regexExp = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gi; return regexExp.test(str); } -module.exports.checkIfValidFQDN = function(str) { +function checkIfValidFQDN(str) { // Check if the FQDN is valid const regexExp = /(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{0,62}[a-zA-Z0-9]\.)+[a-zA-Z]{2,63}$)/gi; return regexExp.test(str); } -module.exports.checkInvalidDomain = function(str) { - return invalidDomains.includes(str); +function checkInvalidDomain(str) { + //check invalid domains + if (invalidDomains.includes(str)) return true; + //check reserved domains + const files = getFiles("./reserved/").map(file => stripExt(file)); + if (files.includes(str)) return true; + + return false; +} + +module.exports = { + checkInvalidDomain, + checkIfValidFQDN, + checkIfValidIP, + stripExt, + getFileExtension, + getFiles }