Skip to content

Instantly share code, notes, and snippets.

@jkomyno
Created September 16, 2016 13:39
Show Gist options
  • Save jkomyno/8e965f376b0f385cbd416b1156f81481 to your computer and use it in GitHub Desktop.
Save jkomyno/8e965f376b0f385cbd416b1156f81481 to your computer and use it in GitHub Desktop.
String.prototype.replaceAll = function(search, replacement) {
return this.split(search).join(replacement)
};
export function doesNetworkAlreadyExist(singleNetwork, globalNetworksRange) {
let arr = globalNetworksRange.map(network => network.ip);
let str = arr.join(",");
return str.indexOf(singleNetwork) !== -1
}
export function isNetwork(value) {
return (/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}(\/[1-9][1-9])$/.test(value));
}
export function isIp(value) {
return (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(value));
}
function isEmail(value) {
return (/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/.test(value));
}
// minimum 1 numbers, 8 chars
function isPassword(value) {
return (/^(?=.*\d)(?=.*\d).{8,}$/.test(value))
}
function isNetworksList(value) {
let list = value.toString().split(',');
let newList = deleteDuplicatesFromArray(list).slice();
let errors = [];
if (!arraysEqual(list, newList)) {
errors.push("Please delete the duplicated elements");
}
list.map((item, i) => {
if (!isNetwork(item)) {
errors.push("Error on element #" + ++i);
}
});
if (errors.length) {
return {
result: false,
errors: errors
}
} else {
return {
result: true
}
}
}
function hasSpaces(value) {
return value.indexOf(" ") !== -1;
}
function isEmpty(value) {
return value == "";
}
function isNumber(value) {
return !isNaN(value) && !isEmpty(value)
}
function isPort(value) {
return (!isNaN(value) && parseInt(value)>0) && (parseInt(value)<65536)
}
export function isTheOnlyFieldFilled(value, fieldList) {
let check = true;
fieldList.map((field, i) => {
if(isEmpty(field)) {
check = false;
}
})
return check;
}
export function areEmpty(propsList) {
let res = true;
propsList.map((item,i) => {
res = isEmpty(item) && res;
});
return res;
}
export function isThereAnEmptyValue(propsList) {
let res = false;
for (let value of propsList) {
if (isEmpty(value)) {
res = true;
break;
} else {
res = false;
}
}
return res;
}
function isSnmpVersion(version) {
return ["1","2c","3"].indexOf(version) !== -1;
}
export function deleteDuplicatesFromArray(a) {
var seen = {};
return a.filter(function(item) {
return seen.hasOwnProperty(item) ? false : (seen[item] = true);
});
}
function arraysEqual(arr1, arr2) {
if(arr1.length !== arr2.length)
return false;
for(var i = arr1.length; i--;) {
if(arr1[i] !== arr2[i])
return false;
}
return true;
}
export function areValid(fieldList, nameList, test) {
let res = true;
let errs = [];
let indexErrs = [];
fieldList.some((item, i) => {
console.log("item", item);
console.log("i", i);
let _test = test[i];
let _name = nameList[i];
if (_test === "number") {
console.log("number");
res = isNumber(item) && res;
if (!isNumber(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "networksList") {
console.log("networksList");
res = isNetworksList(item).result && res;
if (!isNetworksList(item).result) {
errs.push(isNetworksList(item).errors);
indexErrs.push(i);
}
} else if (_test === "text") {
console.log("text");
res = !isEmpty(item) && !hasSpaces(item) && res;
if (isEmpty(item) || hasSpaces(item) && !areEmpty(fieldList)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "port") {
console.log("port");
console.log("PORT: " + fieldList[i]);
res = isPort(item) && res;
if (!isPort(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "password") {
console.log("password");
res = isPassword(item) && res;
if (!isPassword(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "email") {
console.log("email");
res = isEmail(item) && res;
if (!isEmail(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "snmpVersion") {
console.log("snmpVersion");
res = isSnmpVersion(item) && res;
if (!isSnmpVersion(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
} else if (_test === "ip") {
console.log("ip");
res = isIp(item) && res;
if (!isIp(item)) {
errs.push(_name + " is invalid");
indexErrs.push(i);
}
}
});
return {
result: res,
errors: errs,
indexErrors: indexErrs
};
}
export function getNetworksFromOrderedList(a) {
return a.map(function(item) {
return item.network
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment