mirror of
https://github.com/tiennm99/is-a-good-dev.git
synced 2026-06-03 00:15:12 +00:00
59 lines
1.5 KiB
JavaScript
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
|
|
}
|