uuid62
v1.0.2
Published
Base-62 UUID generator
Downloads
14,367
Maintainers
Readme
uuid62
Base-62 UUID generator
Overview
uuid62
makes it easy to generate short base-62 (or any other base) UUIDs. ID
generation is done by uuid
which follows RFC4122. The encoded UUIDs
are alphanumeric [0-9a-zA-Z] and always have a length of 22 chars.
uuid62
began as a fork of
dmarcelino's
uuid-base62
. It provides updated dependencies and more features above that
package. uuid62
is designed to be a drop-in replacement for uuid-base62
,
however, so migration should be trivial.
Installation
npm i uuid62
Usage
const uuid62 = require('uuid62');
const uuid = uuid62.v4();
// -> 2qY9COoAhfMrsH7mCyh86T
// decode a base-62 uuid
const originalUUID = uuid62.decode(uuid);
// -> 9af099b2-6244-4fc1-b72b-1d69a24481b7
// base-62 encode an existing traditional uuid
const encoded = uuid62.encode('8fc60e7c-3b3c-48e9-a6a7-a5fe4f1fbc31');
// -> 2fNwVYePN8WqqDFvVf7XMN
API
uuid62
is essentially a wrapper around uuid.
All optional parameters specified in uuid
's API can also be provided here.
Note that any buffer that would be returned by uuid
will be converted into a
base-62 string representation by this library.
v1 (timestamp-based)
uuid62.v1()
Returns a string. See uuid
for optional parameters to specify timestamp and
node id.
v4 (random)
uuid62.v4()
Returns a string.
v5 (namespace)
uuid62.v5(<name>, <namespace>)
Returns a string. Requires:
name
- a string or arraynamespace
- a string or buffer representing a uuid. String representation may be conventional or base-62. Two pre-defined namespaces are exposed atuuid62.DNS
anduuid62.URL
.
Examples:
let id = uuid62.v5('https://google.com', uuid62.URL);
id = uuid62.v5('google.com' uuid62.DNS);
const myNS = uuid62.v4();
id = uuid62.v5('foobar', myNS);
Encoding/decoding
uuid62.encode(<id>, <encoding>)
Returns a string representing a base-62 id. Takes:
id
- a string or array representing a conventional uuidencoding
- an optional string specifying the encoding of the input id. Defaults to hex.
If the input id is of the incorrect length, the output will be padded with 0
on the left or trimmed from the left.
uuid62.decode(<id>, <encoding>)
Returns a string representing a conventional uuid, including dashes. Takes:
id
- a string representing a base-62 uuidencoding
- an optional string specifying the encoding of the output id. Defaults to hex.
If the input id is of the incorrect length, it will be padded with 0
on the
left or trimmed from the left before decoding.
Other bases
uuid62 can support other bases by assigning a new baseX charset to customBase
:
uuid62.customBase = new uuid62.baseX("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_");
const uuid = uuid62.v4();
// -> 31LoSI_BVeQpXtwu_-GEbL
License
MIT