randex
Version:
Generates random filename, username, email, name, full name, etc for test purposes.
122 lines (121 loc) • 4.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RandexSetUtil = void 0;
var type_1 = require("./type");
var hex = "0123456789ABCDEFabcdef";
var symbol = '[-!$%^&*()_+|~=`{}[]:";<>?,./]' + "'";
var number = "0123456789";
var binary = "01";
var englishLower = "abcdefghijklmnopqrstuvwxyz";
var englishUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var frenchLower = "abcdefghijklmnopqrstuvwxyzàâæçèéêëîïôœùûü";
var frenchUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÆÇÈÉÊËÎÏÔŒÙÛÜ";
var spanishLower = "abcdefghijklmnopqrstuvwxyzñ";
var spanishUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÑ";
var russianLower = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
var russianUpper = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
var RandexSetUtil = /** @class */ (function () {
function RandexSetUtil() {
}
RandexSetUtil.toSingleRange = function (itemSet) {
if (Array.isArray(itemSet)) {
return RandexSetUtil.toAlphabetRange(itemSet);
}
else if (type_1.RandexTypeParser.inAlphabet(itemSet)) {
return RandexSetUtil.toAlphabetRange([itemSet, "default"]);
}
switch (itemSet) {
case "hex":
return hex;
case "symbol":
return symbol;
case "number":
return number;
case "binary":
return binary;
default:
return "";
}
};
RandexSetUtil.toAlphabetCase = function (cas, lowerWord, upperWord) {
switch (cas) {
case "lower":
case "l":
return lowerWord;
case "upper":
case "u":
return upperWord;
default:
return lowerWord + upperWord;
}
};
RandexSetUtil.toAlphabetRange = function (set) {
var alphabet = set[0], aCase = set[1];
switch (alphabet) {
case "english":
return RandexSetUtil.toAlphabetCase(aCase, englishLower, englishUpper);
case "french":
return RandexSetUtil.toAlphabetCase(aCase, frenchLower, frenchUpper);
case "spanish":
return RandexSetUtil.toAlphabetCase(aCase, spanishLower, spanishUpper);
// case "german":
// return RtSetUtil.toAlphabetCase(aCase, englishLower, englishUpper);
case "russian":
return RandexSetUtil.toAlphabetCase(aCase, russianLower, russianUpper);
}
};
RandexSetUtil.toRange = function (set) {
var result = "";
if (type_1.RandexTypeParser.isSetSingle(set)) {
result += RandexSetUtil.toSingleRange(set);
}
else if (type_1.RandexTypeParser.isSet(set)) {
result += set.map(RandexSetUtil.toSingleRange).join("");
}
return result;
};
RandexSetUtil.getLength = function (reservedChars, length, defaultLength) {
var result = defaultLength;
if (typeof length === "number" && length > reservedChars) {
result = length - reservedChars;
}
else if (Array.isArray(length)) {
var min = length[0], max = length[1];
var dMin = min - reservedChars;
var dMax = max - reservedChars;
if (dMin >= 0 && dMax >= 0) {
if (dMin < dMax) {
return [dMin, dMax];
}
else if (dMin === dMax) {
return dMin;
}
}
}
return result;
};
RandexSetUtil.randomSingleNumber = function (length) {
return Math.floor(Math.random() * length);
};
RandexSetUtil.randomRangeNumber = function (min, max) {
var minN = Math.min(min, max);
var maxN = Math.max(min, max);
return RandexSetUtil.randomSingleNumber(maxN - minN + 1) + minN;
};
RandexSetUtil.many = function (count, callback) {
var result = [];
var length = Array.isArray(count) ? RandexSetUtil.randomRangeNumber(count[0], count[1]) : count;
for (var i = 0; i < length; i++) {
result.push(callback());
}
return result;
};
RandexSetUtil.defaultFileNameLength = [3, 10];
RandexSetUtil.defaultExtensionLength = [2, 5];
RandexSetUtil.fileNameExtraChars = ""; //"-_.";
RandexSetUtil.defaultEmailPrefixLength = [6, 10];
RandexSetUtil.defaultHightDomainEmailLength = [1, 6];
RandexSetUtil.defaultLowDomainEmailLength = [2, 4];
return RandexSetUtil;
}());
exports.RandexSetUtil = RandexSetUtil;