ts-randomstring
Version:
A library used for generating random strings, written in TypeScript and based on Node.
67 lines (66 loc) • 2.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCharacterSet = exports.Capitalization = exports.Capitalisation = exports.CharacterSetType = void 0;
/**
* Enumerates through every supported character set type for random string generation.
*/
var CharacterSetType;
(function (CharacterSetType) {
CharacterSetType[CharacterSetType["Alphanumeric"] = 0] = "Alphanumeric";
CharacterSetType[CharacterSetType["Alphabetic"] = 1] = "Alphabetic";
CharacterSetType[CharacterSetType["Numeric"] = 2] = "Numeric";
CharacterSetType[CharacterSetType["Hex"] = 3] = "Hex";
CharacterSetType[CharacterSetType["Binary"] = 4] = "Binary";
CharacterSetType[CharacterSetType["Octal"] = 5] = "Octal";
})(CharacterSetType = exports.CharacterSetType || (exports.CharacterSetType = {}));
/**
* Enumerates through every supported capitalisation style for random string generation.
*/
var Capitalisation;
(function (Capitalisation) {
Capitalisation[Capitalisation["Mixed"] = 0] = "Mixed";
Capitalisation[Capitalisation["Uppercase"] = 1] = "Uppercase";
Capitalisation[Capitalisation["Lowercase"] = 2] = "Lowercase";
})(Capitalisation = exports.Capitalisation || (exports.Capitalisation = {}));
exports.Capitalization = Capitalisation;
/**
* Gets the character set by virtue of the passed character set type and capitalisation style.
*
* @param charSetType The character set type to pull characters from.
* @param capitalisation The character capitalisation style.
* @returns Returns a string of unique characters which represent the character set.
*/
const getCharacterSet = (charSetType, capitalisation) => {
let charSet = "";
const numbers = "0123456789";
const charsLower = "abcdefghijklmnopqrstuvwxyz";
const charsUpper = charsLower.toUpperCase();
switch (charSetType) {
case CharacterSetType.Alphanumeric:
charSet = numbers + charsLower + charsUpper;
break;
case CharacterSetType.Alphabetic:
charSet = charsLower + charsUpper;
break;
case CharacterSetType.Numeric:
charSet = numbers;
break;
case CharacterSetType.Hex:
charSet = numbers + "abcdef";
break;
case CharacterSetType.Binary:
charSet = "01";
break;
case CharacterSetType.Octal:
charSet = "01234567";
break;
}
if (capitalisation === Capitalisation.Uppercase) {
charSet = charSet.toUpperCase();
}
else if (capitalisation === Capitalisation.Lowercase) {
charSet = charSet.toLowerCase();
}
return charSet;
};
exports.getCharacterSet = getCharacterSet;