base36Encode function

String base36Encode(
  1. dynamic value
)

Implementation

String base36Encode(dynamic value) {
  final number = _toBigInt(value);

  if (number < BigInt.zero) {
    throw ArgumentError('number must be non-negative');
  }

  if (number == BigInt.zero) {
    return '0';
  }

  const base = 36;
  final chars = <String>[];
  var current = number;

  while (current > BigInt.zero) {
    final remainder = current % BigInt.from(base);

    chars.add(_base36Alphabet[remainder.toInt()]);
    current = current ~/ BigInt.from(base);
  }

  return chars.reversed.join();
}