Base-id
A basic base58 and base62 encoding and decoding system. Can optionally add a prefix to make the identifier more identifiable!
Encodes hex-strings, byte arrays, numbers, big integers, and MongoDB ObjectIds to base58 or base62. No dependencies either!

Installation
Install with NPM like so:
npm install base-id
Examples
const { base58, base62 } = require('base-id');
base58.generateToken(24, 'account_');
base62.generateToken(24, 'product_');
const hex = "0a372a50deadbeef";
let res = base58.encode(hex);
res = base62.encode(hex);
const objId = new ObjectId();
res = base58.encodeWithPrefix(objId, 'charge_');
new ObjectId(base58.decodeWithPrefix('charge_2d2yysrPLNBLYpWfK', 'charge_'));
base58 and base62
The module exports both base58 and base62 instances with the following members.
Methods
-
encode(mixed) – Encodes the given value to the desired base encoding.
-
decode(encodedString) – Decodes the given base-encoded string to a hex string.
-
encodeWithPrefix(mixed, prefix) – Encodes the given value to the desired base encoding, prepending a prefix to the result.
-
decodeWithPrefix(ecodedString, prefix) – Decodes the given base-encoded string to a hex string, stripping the given prefix.
-
generateToken(bytes, prefix) – Generates a secure random string, base encoded, with an optional prefix
-
generateBytes(count, options) – Generates secure random bytes
options.array – when truthy, will return a Uint8Array instead of a standard array
-
bytesToHex(bytes) – Convert a byte array to a hex string
-
decodeHexToNumeric(hex) – Decodes a hex string to a BigInt number
-
encodeNumericToHex(dec) – Encode a number to hex string
-
getHexFromObject(mixed) Gets the hex string from the given thing. Accepts a hex string, number, BigInt, byte array, or MongoDB ObjectId instance.
-
getUUIDFromHex(hex, lowercase=true) Gets the formatted UUID string from the given hex string. Defaults to lowercase.
Breaking Changes
v3.0.0
- Removed BigNum dependency (uses JS2020's built-in BigInt)
v2.0.0
- Removed
binaryToHex
- Removed
hexToBinary