generateWithCollisionHandling static method

List<FileConfig> generateWithCollisionHandling(
  1. List<({String path, String type})> inputs
)

Generate UIDs with collision resolution

Implementation

static List<FileConfig> generateWithCollisionHandling(
  List<({String path, String type})> inputs,
) {
  final configs = <FileConfig>[];
  final usedUIDs = <String>{};

  for (final input in inputs) {
    var uid = _generateUID(input.path, input.type);
    var counter = 1;

    // Handle collisions by appending counter
    while (usedUIDs.contains(uid)) {
      final baseUID = uid.substring(0, 6);
      uid = '${baseUID}${counter.toString().padLeft(2, '0')}';
      counter++;
    }

    usedUIDs.add(uid);
    configs.add(FileConfig(input.path, input.type, uid));
  }

  return configs;
}