UNPKG

rkey

Version:
48 lines (46 loc) 1.75 kB
"use strict"; 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;