rkey
Version:
library for create random key
48 lines (46 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getRandomKey = void 0;
const getRandomNumber_1 = require("./utils/getRandomNumber");
/**
Generate new unique key
@param {number} length length of your key
@param {TComponentsOfKey} components additional information about your key
@returns {string} unique key
*/
const getRandomKey = (length, components) => {
if (typeof length != 'number') {
throw new TypeError('Length need be number');
}
if (typeof components != 'string' || (components != 'all' && components != 'letters' && components != 'numbers')) {
throw new TypeError('Components must be "all", "letters" or "number"');
}
const lowerCaseLetters = 'qwertyuiopasdfghjklzxcvbnm';
const upperCaseLetters = lowerCaseLetters.toUpperCase();
const alphabet = lowerCaseLetters + upperCaseLetters;
const numbers = '0123456789';
const alphabetWithNumbers = alphabet + numbers;
let result = '';
switch (components) {
case 'all': {
for (let i = 0; i < length; i++) {
result += alphabetWithNumbers[(0, getRandomNumber_1.getRandomNumber)(0, alphabetWithNumbers.length - 1)];
}
break;
}
case 'letters': {
for (let i = 0; i < length; i++) {
result += alphabet[(0, getRandomNumber_1.getRandomNumber)(0, alphabet.length - 1)];
}
break;
}
case 'numbers': {
for (let i = 0; i < length; i++) {
result += numbers[(0, getRandomNumber_1.getRandomNumber)(0, numbers.length - 1)];
}
break;
}
}
return result;
};
exports.getRandomKey = getRandomKey;