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; };