🔤 AlphabetNumberConverter
AlphabetNumberConverter is a utility that converts numbers, strings, and JavaScript objects into compact encoded strings using a configurable alphabet. All conversions are reversible and support BigInt for large values.
Installation
1npm install hbh-nodes
Import
1import { AlphabetNumberConverter } from "hbh-nodes";
(CommonJS)
1const { AlphabetNumberConverter } = require("hbh-nodes");
Encode and Decode Numbers
1const conv = new AlphabetNumberConverter();3const code = conv.encode(12345);4console.log(code); 5// Example output: "dnh"7console.log(conv.decode(code)); 8// Example output: 12345n
Encode and Decode Strings
1const encoded = conv.encodeString("hello@example.com");2console.log(encoded); 3// Example output: "gyTfA...something"5const decoded = conv.decodeToString(encoded);6console.log(decoded); 7// Output: "hello@example.com"
Encode and Decode Objects
1const user = { id: 1, name: "Alice" };3const code = conv.encodeObject(user);4console.log(code);5// Example output: "bHdKfL..."7const obj = conv.decodeObject(code);8console.log(obj);9// Output: { id: 1, name: "Alice" }
Auto-Type Encode (number, string, object)
1console.log(conv.encode(42));2// Example: "gG"4console.log(conv.encode("hello"));5// Example: "dfKsL..."7console.log(conv.encode({ a: 1 }));8// Example: "kLf92..."
Custom Alphabet
1const custom = new AlphabetNumberConverter({2 chars: "0123456789abcdef",3 base: 164});6const code = custom.encode(255);7console.log(code);8// Example output: "ff"10console.log(custom.decode(code));11// Output: 255n
Count Possible Codes
1console.log(conv.uniqueCodesCount(52, 5)); 2// Example output: 380204032n (52^5)
Quick Example
1const conv = new AlphabetNumberConverter();3console.log(conv.encode(2025)); 4// Example: "kH"6console.log(conv.decode("kH")); 7// Output: 2025n9console.log(conv.encode("chatgpt"));10// Example: "fL2kA..."12console.log(conv.encode({ ok: true }));13// Example: "bKf92..."