Wondering what’s next for npm?Check out our public roadmap! »

    uuid62

    1.0.1 • Public • Published

    uuid62

    npm version CircleCI Dependency Status Known Vulnerabilities

    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 array
    • namespace - a string or buffer representing a uuid. String representation may be conventional or base-62. Two pre-defined namespaces are exposed at uuid62.DNS and uuid62.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 uuid
    • encoding - 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 uuid
    • encoding - 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

    Install

    npm i uuid62

    DownloadsWeekly Downloads

    3,445

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    13.6 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar