npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

edge-unique-username-generator

v1.2.0

Published

An edge compatible 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.

Downloads

26

Readme

Total alerts Language grade: JavaScript npm NPM

visitors

unique-username-generator

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

Installation

npm install unique-username-generator --save
  • Importing
// Using Node.js `require()`
const { generateFromEmail, generateUsername } = require("unique-username-generator");
// Using ES6 imports
import { generateFromEmail, generateUsername } from "unique-username-generator";

Usage

Generate username from email

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(
  "[email protected]",
  3
);
console.log(username); // lakshminarayan234

// add four random digits
const username = generateFromEmail(
  "[email protected]",
  4
);
console.log(username); // lakshminarayan2347

Randomly generate unique username.

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

Default dictionaries

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

Custom dictionaries

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

API

uniqueUsernameGenerator (options)

Returns a string with a random generated username

options

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 |

License

The MIT License.

Thank you

If you'd like to say thanks, I'd really appreciate a coffee :)