Skip to content

Instantly share code, notes, and snippets.

@andreasmischke
Created September 29, 2023 13:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andreasmischke/a63bb267b00afb4193a1d8feb1e1a797 to your computer and use it in GitHub Desktop.
Save andreasmischke/a63bb267b00afb4193a1d8feb1e1a797 to your computer and use it in GitHub Desktop.

nanoid-dictionary

Predefined character sets to use with nanoid. Used by nanoid-generate.

npm

Install

Install nanoid and dictionary

npm i nanoid nanoid-dictionary

Note: If you plan on using import style ES6 syntax (or node complains that it can't find the named export of the thing you're importing from nanoid-dictionary please rather install the beta version, like this

npm i nanoid-dictionary@beta

Usage

Require a customAlphabet from nanoid and pass a string from the dictionary:

import { customAlphabet } from 'nanoid';
import { lowercase } from 'nanoid-dictionary';

const lowercaseRandomString = customAlphabet(lowercase, 10);

Character sets

numbers

Numbers from 0 to 9

import { numbers } from 'nanoid-dictionary';

hexadecimalLowercase

Lowercase English hexadecimal lowercase characters: 0123456789abcdef

import { hexadecimalLowercase } from 'nanoid-dictionary';

hexadecimalUppercase

Lowercase English hexadecimal uppercase characters: 0123456789ABCDEF

import { hexadecimalUppercase } from 'nanoid-dictionary';

lowercase

Lowercase English letters: abcdefghijklmnopqrstuvwxyz

import { lowercase } from 'nanoid-dictionary';

uppercase

Uppercase English letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ

import { uppercase } from 'nanoid-dictionary';

alphanumeric

Combination of all the lowercase, uppercase characters and numbers from 0 to 9

Does not include any symbols or special characters

import { alphanumeric } from 'nanoid-dictionary';

nolookalikes

Numbers and english alphabet without lookalikes: 1, l, I, 0, O, o, u, v, 5, S, s, 2, Z.

Complete set: 346789ABCDEFGHJKLMNPQRTUVWXYabcdefghijkmnpqrtwxyz

import { nolookalikes } from 'nanoid-dictionary';

nolookalikesSafe

Same as nolookalikes but with removed vowels and following letters: 3, 4, x, X, V.

This list should protect you from accidentally getting obscene words in generated strings.

Complete set: 6789BCDFGHJKLMNPQRTWbcdfghjkmnpqrtwz

import { nolookalikesSafe } from 'nanoid-dictionary';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment