Files
is-a-good-dev/utils/utils.js
T
2022-11-22 20:03:49 -07:00

59 lines
1.5 KiB
JavaScript

const invalidDomains = require('./invalid-domains.json');
const fs = require('fs');
const core = require('@actions/core');
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);
}
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);
}
function checkInvalidDomain(str) {
//check invalid domains
if (invalidDomains.includes(str)) {
core.setOutput("recordInfo", "This subdomain has been blocked for register by the is-a-good.dev team.")
return true;
}
//check reserved domains
const files = getFiles("./reserved/").map(file => stripExt(file));
if (files.includes(str)) {
core.setOutput("recordInfo", "This subdomain has been reserved by the is-a-good.dev team.")
return true;
}
return false;
}
module.exports = {
checkInvalidDomain,
checkIfValidFQDN,
checkIfValidIP,
stripExt,
getFileExtension,
getFiles
}