JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 5947
  • Score
    100M100P100Q122556F
  • License MIT

Base-62 UUID generator

Package Exports

  • uuid62
  • uuid62/uuid62.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (uuid62) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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