randex
Version:
Generates random filename, username, email, name, full name, etc for test purposes.
80 lines (79 loc) • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RandexTypeParser = void 0;
var RandexTypeParser = /** @class */ (function () {
function RandexTypeParser() {
}
RandexTypeParser.inRange = function (value, range) {
var min = range[0], max = range[1];
return value >= min && value <= max;
};
RandexTypeParser.inLiteral = function (value) {
var expects = [];
for (var _i = 1; _i < arguments.length; _i++) {
expects[_i - 1] = arguments[_i];
}
return typeof value === "string" && !!expects.find(function (x) { return x === value; });
};
RandexTypeParser.inCase = function (value) {
return RandexTypeParser.inLiteral(value, "default", "lower", "upper", "l", "u");
};
RandexTypeParser.inAlphabet = function (value) {
return (typeof value === "string" &&
RandexTypeParser.inLiteral(value, "english", "french", "spanish", // "german",
"russian"));
};
RandexTypeParser.inSet = function (value) {
return RandexTypeParser.inAlphabet(value) || RandexTypeParser.inLiteral(value, "hex", "symbol", "number", "binary");
};
// RandomLength
RandexTypeParser.isLength = function (value) {
if (typeof value === "number") {
return true;
}
else if (Array.isArray(value) && value.length === 2) {
return typeof value[0] === "number" && typeof value[1] === "number";
}
return false;
};
// RandomItemSet
RandexTypeParser.isSetSingle = function (value) {
if (typeof value === "string") {
return RandexTypeParser.inSet(value);
}
else if (Array.isArray(value) && value.length === 2) {
var _a = value, alphabet = _a[0], aCase = _a[1];
if (typeof alphabet === "string" && typeof aCase === "string") {
if (RandexTypeParser.inAlphabet(alphabet) && RandexTypeParser.inCase(aCase)) {
return true;
}
}
}
return false;
};
RandexTypeParser.isSet = function (value) {
if (RandexTypeParser.isSetSingle(value)) {
return true;
}
else if (Array.isArray(value)) {
var sets = value.filter(function (x) { return RandexTypeParser.isSetSingle(x); });
return sets.length === value.length;
}
return false;
};
RandexTypeParser.isPartArray = function (value) {
if (Array.isArray(value) && RandexTypeParser.inRange(value.length, [2, 3])) {
if (value.length === 2) {
var set = value[0], rangeOrLength = value[1];
return RandexTypeParser.isSet(set) && (RandexTypeParser.isLength(rangeOrLength) || typeof rangeOrLength === "string");
}
else if (value.length === 3) {
var set = value[0], range = value[1], length_1 = value[2];
return RandexTypeParser.isSet(set) && typeof range === "string" && RandexTypeParser.isLength(length_1);
}
}
return false;
};
return RandexTypeParser;
}());
exports.RandexTypeParser = RandexTypeParser;