randomUID function

String randomUID({
  1. int length = 4,
  2. bool withTime = false,
})

Get a random id consists by number and letters.

Implementation

String randomUID({int length = 4, bool withTime = false}) {
  assert(length >= 1);
  final dt = withTime ? '${crcTimestamp()}_' : '';
  if (length < 15) {
    final id = ((Random().nextDouble() + 1) *
            int.parse('0x1'.padRight(length + 3, '0')))
        .truncate()
        .toRadixString(16)
        .substring(1);
    return '$dt$id';
  } else {
    final output = StringBuffer();
    final c = (length / 12).floor();
    for (var i = 0; i < c; ++i) {
      output.write(randomUID(length: 12));
    }
    output.write(randomUID(length: length - c * 12));
    return '$dt${output.toString()}';
  }
}