shortid

Creator: coderz1093

Last updated:

Add to Cart

Description:

shortid

ShortId creates amazingly short non-sequential url-friendly unique ids. Perfect for url shorteners, MongoDB and Redis ids, and any other id users might see.

By default 7-14 url-friendly characters: A-Z, a-z, 0-9, _-
Supports custom seeds, custom alphabet.
Can generate any number of ids without duplicates, even millions per day.
Good replacement for Mongo ID/Mongoose ID.
Includes tests.

ShortId does not generate cryptographically secure ids, so don't rely on it to make IDs which are impossible to guess.
Usage #
import 'package:shortid/shortid.dart';

print(shortid.generate());
// PPBqWA9
copied to clipboard

shortid.generate()
Returns string non-sequential unique id.
Example
users.insert({
_id: shortid.generate(),
name: '...',
email: '...'
});
copied to clipboard

shortid.characters(string)
Default: '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_'
Returns new alphabet as a string
Recommendation: If you don't like _ or -, you can to set new characters to use.
Optional
Change the characters used.
You must provide a string of all 64 unique characters. Order is not important.
The default characters provided were selected because they are url safe.
Example
// use $ and @ instead of - and _
shortid.characters('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$@');
copied to clipboard
// any 64 unicode characters work, but I wouldn't recommend this.
shortid.characters('ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫');
copied to clipboard

shortid.seed(integer)
Default: 1
Recommendation: You typically won't want to change this.
Optional
Choose a unique value that will seed the random number generator so users won't be able to figure out the pattern of the unique ids. Call it just once in your application before using shortId and always use the same value in your application.
Most developers won't need to use this, it's mainly for testing ShortId.
If you are worried about users somehow decrypting the id then use it as a secret value for increased encryption.
Example
shortid.seed(1000);
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.