MCPcopy Create free account
hub / github.com/Effect-TS/effect / levenshtein

Function levenshtein

packages/tools/api-diff/src/Diff.ts:20–35  ·  view source on GitHub ↗
(left: string, right: string)

Source from the content-addressed store, hash-verified

18const pathName = (entity: ApiEntity): string => entity.path.at(-1) ?? ""
19
20const levenshtein = (left: string, right: string): number => {
21 const row = Array.from({ length: right.length + 1 }, (_, index) => index)
22 for (let leftIndex = 1; leftIndex <= left.length; leftIndex++) {
23 let previous = row[0]!
24 row[0] = leftIndex
25 for (let rightIndex = 1; rightIndex <= right.length; rightIndex++) {
26 const above = row[rightIndex]!
27 const diagonal = previous
28 previous = above
29 row[rightIndex] = left[leftIndex - 1] === right[rightIndex - 1]
30 ? diagonal
31 : Math.min(diagonal, above, row[rightIndex - 1]!) + 1
32 }
33 }
34 return row[right.length]!
35}
36
37const nameSimilarity = (left: string, right: string): number => {
38 const length = Math.max(left.length, right.length)

Callers 1

nameSimilarityFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected