puchi
A small JavaScript library to encode and decode large integer strings of base n <= 64
to base 64.
About
Puchi is a small and simple library that allows you to convert large integer strings of base n
to base 64. One use case would be to convert MongoDB's ObjectID (12-byte, base 16) to base 64 for a url-shortener.
It also allows you to convert non-integer strings of base n
to base n
using the convert
function.
I'm not sure if that's all useful but it's there anyways 😆. See below for an example.
Note: This library depends on big-integer to perform large integer calculations.
encode(value: string, base?: number = 16)
value
- The integer string to encode.base
- The base or radix of the integer string.
const encode = ; console // → n2LiMlrtYMNPIVBj
decode(value: string, base?: number = 16)
value
- The integer string to decode.base
- The base or radix of the integer string.
const decode = ; console // → 5c2bd2c156ddf30c73b39953
convert(value: string, from!: number, to!: number, domain?: string[], range?: string[])
value
- The integer string to convert.from
- The base or radix of the integer string. (required)to
- The base or radix to convert to. (required)domain
- The domain or character map. Defaults to an array of 64 characters:[0-9, a-z, A-Z, '_', '-']
range
- The range or character map. Defaults to an array of 64 characters:[0-9, a-z, A-Z, '_', '-']
const convert = console // → 11000000111001 console // → 12345 // Note: The following example does not output in the ASCII sense of binary// but more of a theoretical mapping. const domain = "abcdefghijklmnopqrstuvwxyz !";console // → 11010010111000111010110000111100010001011010100111011111 const range = domain;console hello world!