Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
unique-username-generator
Advanced tools
A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.
A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.
npm install unique-username-generator --save
// Using Node.js `require()`
const { generateFromEmail, generateUsername } = require("unique-username-generator");
// Using ES6 imports
import { generateFromEmail, generateUsername } from "unique-username-generator";
It will generate username from email and add upto six random digits at the end of the name.
// add three random digits
const username = generateFromEmail(
"lakshmi.narayan@example.com",
3
);
console.log(username); // lakshminarayan234
// add four random digits
const username = generateFromEmail(
"lakshmi.narayan@example.com",
4
);
console.log(username); // lakshminarayan2347
It will generate unique username from adjectives, nouns, random digits and separator. You can control these following parameters - separator, number of random digits and maximum length of a username.
// generaterUsername(separator, number of random digits, maximum length)
// Without any parameter
const username = generateUsername();
console.log(username); // blossomlogistical
// With any separator like "-, _"
const username = generateUsername("-");
console.log(username); // blossom-logistical
// With random digits and no separator
const username = generateUsername("", 3);
console.log(username); // blossomlogistical732
// With maximum length constraint and no separator, no random digits
const username = generateUsername("", 0, 15);
console.log(username); // blossomlogistic
// With maximum length constraint and separator but no random digits
const username = generateUsername("-", 0, 15);
console.log(username); // blossom-logisti
// With maximum length constraint and random digits but no separator
const username = generateUsername("", 2, 19);
console.log(username); // blossomlogistical73
// With all parameters
const username = generateUsername("-", 2, 20, 'unique username');
console.log(username); // unique-username-73
By default, the unique username generator library comes with 2 dictionaries out of the box, so that you can use them straight away.
The new syntax for using the default dictionaries is the following:
import { uniqueUsernameGenerator, Config, adjectives, nouns } from 'unique-username-generator';
const config: Config = {
dictionaries: [adjectives, nouns]
}
const username: string = uniqueUsernameGenerator(config); // blossomlogistical
You might want to provide your custom dictionaries to use for generating your unique username, in order to meet your project requirements. You can easily do that using the dictionaries option.
import { uniqueUsernameGenerator } from 'unique-username-generator';
const marvelCharacters = [
'Iron Man',
'Doctor Strange',
'Hulk',
'Captain America',
'Thanos'
];
const config: Config = {
dictionaries: [marvelCharacters],
separator: '',
style: 'capital',
randomDigits: 3
}
const username: string = uniqueUsernameGenerator(config); // Hulk123
Returns a string
with a random generated username
Type: Config
The options
argument mostly corresponds to the properties defined for uniqueUsernameGenerator. Only dictionaries
is required.
Option | Type | Description | Default value | Example value |
---|---|---|---|---|
dictionaries | array | This is an array of dictionaries. Each dictionary is an array of strings containing the words to use for generating the string. The provided dictionaries can be imported from the library as a separate modules and provided in the desired order. | n/a | import { uniqueUsernameGenerator, adjectives, nouns } from 'unique-username-generator'; const username: string = uniqueUsernameGenerator({ dictionaries: [nouns, adjectives]}); // blossomlogistical |
separator | string | A string separator to be used for separate the words generated. The default separator is set to be empty string. | "" | - |
randomDigits | number | A number of random digits to add at the end of a username. | 0 | 3 |
length | number | A maximum length of a username | 15 | 12 |
style | lowerCase | upperCase | capital | The default value is set to lowerCase and it will return a lower case username.By setting the value to upperCase , the words, will be returned with all the letters in upper case format.The capital option will capitalize each word of the unique username generated | lowerCase | lowerCase |
The MIT License.
If you'd like to say thanks, I'd really appreciate a coffee :)
FAQs
A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.
The npm package unique-username-generator receives a total of 62,587 weekly downloads. As such, unique-username-generator popularity was classified as popular.
We found that unique-username-generator demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.