generate-unique-id
Version:
Generate a unique random ID string.
53 lines (41 loc) • 1.2 kB
JavaScript
function getRandomNumber(limit) {
return Math.floor(Math.random() * limit).toString();
}
function filterSymbols(excludeSymbols, group) {
let newGroup = group;
excludeSymbols.forEach((symbol) => {
newGroup = newGroup.replace(symbol, '');
});
return newGroup;
}
function createId(availableChars, idLength) {
let id = '';
for (let i = 0; i < idLength; i += 1) {
id += availableChars[getRandomNumber(availableChars.length)];
}
return id;
}
function generateUniqueId({
length = 20,
useLetters = true,
useNumbers = true,
includeSymbols = [],
excludeSymbols = [],
} = {}) {
let letters = 'abcdefghijklmnopqrstuvwxyz';
let numbers = '0123456789';
let availableChars = [];
let lettersArr = [];
let numbersArr = [];
if (useLetters) {
if (excludeSymbols.length) letters = filterSymbols(excludeSymbols, letters);
lettersArr = letters.split('');
}
if (useNumbers) {
if (excludeSymbols.length) numbers = filterSymbols(excludeSymbols, numbers);
numbersArr = numbers.split('');
}
availableChars = [...lettersArr, ...numbersArr, ...includeSymbols];
return createId(availableChars, length);
}
module.exports = generateUniqueId;