base36Decode function

BigInt base36Decode(
  1. String numberStr
)

Implementation

BigInt base36Decode(String numberStr) {
  final sanitized = numberStr.trim().toLowerCase();

  if (sanitized.isEmpty) {
    return BigInt.zero;
  }

  var result = BigInt.zero;

  for (final char in sanitized.split('')) {
    final index = _base36Alphabet.indexOf(char);

    if (index == -1) {
      throw ArgumentError("Invalid character '$char' for base36 encoding");
    }

    result = result * BigInt.from(36) + BigInt.from(index);
  }

  return result;
}