# Base 36 to BigInt?

Not sure if there's a built-in one, but base-X to BigInt is pretty easy to implement:

function parseBigInt(
numberString,
keyspace = "0123456789abcdefghijklmnopqrstuvwxyz",
) {
let result = 0n;
const keyspaceLength = BigInt(keyspace.length);
for (let i = numberString.length - 1; i >= 0; i--) {
const value = keyspace.indexOf(numberString[i]);
if (value === -1) throw new Error("invalid string");
result = result * keyspaceLength + BigInt(value);
}
return result;
}

console.log(parseInt("zzzzzzz", 36));
console.log(parseBigInt("zzzzzzz"));
console.log(parseBigInt("zzzzzzzzzzzzzzzzzzzzzzzzzz"));


outputs

78364164095
78364164095n
29098125988731506183153025616435306561535n


The default keyspace there is equivalent to what parseInt with base 36 uses, but should you need something else, the option's there. :)

You could convert the number to a bigint type.

function convert(value, radix) {
return [...value.toString()]
}

console.log(convert('zzzzzzzzzzzzz', 36).toString());

With greater chunks, like just for example with ten (eleven return a false result).

function convert(value, radix) { // value: string
var size = 10,
i = value.length % size || size,
parts = [value.slice(0, i)];

while (i < value.length) parts.push(value.slice(i, i += size));

return parts.reduce((r, v) => r * factor + BigInt(parseInt(v, radix)), 0n);
}

console.log(convert('zzzzzzzzzzzzz', 36).toString());