lookupWithVariants function

String? lookupWithVariants(
  1. String query,
  2. Map<String, List<String>> canonicalToVariants, {
  3. int maxDistance = 2,
})

Lookup that returns canonical key if query matches any variant within maxDistance.

Implementation

String? lookupWithVariants(
  String query,
  Map<String, List<String>> canonicalToVariants, {
  int maxDistance = 2,
}) {
  final String queryLower = query.trim().toLowerCase();
  for (final MapEntry<String, List<String>> entry in canonicalToVariants.entries) {
    if (entry.key.toLowerCase() == queryLower) return entry.key;
    for (final String variant in entry.value) {
      if (variant.toLowerCase() == queryLower) return entry.key;
      if (LevenshteinUtils.distance(variant.toLowerCase(), queryLower) <= maxDistance) {
        return entry.key;
      }
    }
  }
  return null;
}