reddit-style-username-generator
Version:
A utility for generating and storing unique username combinations in Redis. This package reads usernames from a file, generates combinations with specified colors and nouns, and stores them in a Redis set.
39 lines (30 loc) • 1.26 kB
text/typescript
import adjectives from './data/adjectives';
import colors from './data/colors';
import nouns from './data/nouns';
function capitalizeFirstLetter(word: string): string {
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
}
function getRandomNumber(min = 1, max = 999): number {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
function generateUsername(
separator = '',
enableColor = false,
suffixNumber?: number,
): string {
const noun = nouns[Math.floor(Math.random() * nouns.length)];
const adjective = adjectives[Math.floor(Math.random() * adjectives.length)];
let color = '';
if (enableColor) {
color = colors[Math.floor(Math.random() * colors.length)];
}
let randomNumber =
suffixNumber !== undefined ? suffixNumber : getRandomNumber();
const formattedAdjective = capitalizeFirstLetter(adjective);
const formattedColor = color ? capitalizeFirstLetter(color) : '';
const formattedNoun = capitalizeFirstLetter(noun);
return enableColor
? `${formattedAdjective}${separator}${formattedColor}${separator}${formattedNoun}${randomNumber}`
: `${formattedAdjective}${separator}${formattedNoun}${randomNumber}`;
}
export { capitalizeFirstLetter, getRandomNumber, generateUsername };