blob: 75c035d74b4776abefde7384b2855869396f6099 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import levenshtein from 'fast-levenshtein';
export const closest = (path: string, suggestions: string[]) => {
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;
};
|