import levenshtein from "fast-levenshtein"; export const closest = (path: string, suggestions: string[]) => { const partialMatches = suggestions.filter((suggestion) => suggestion.includes(path), ); if (partialMatches.length) return partialMatches[0]; const suggestionsWithDistance = suggestions.map((suggestion) => { const distance = levenshtein.get(path, suggestion); return { suggestion, distance }; }); suggestionsWithDistance.sort((a, b) => a.distance - b.distance); for (const suggestion of suggestionsWithDistance) if (suggestion.distance < suggestion.suggestion.length / 2) return suggestion.suggestion; return suggestionsWithDistance[0].suggestion; };