Skip to content

Commit eda148f

Browse files
committed
fix(did-you-mean): switch levenshtein libraries
`leven` dropped support for node10 and we still currently have to support it. Moved to https://github.com/ka-weihe/fastest-levenshtein Originally discussed in #2403, but the did-you-mean lib moved quite a bit since then and there were conflicts so I made a new PR
1 parent 47a3d18 commit eda148f

File tree

13 files changed

+315
-235
lines changed

13 files changed

+315
-235
lines changed

lib/utils/did-you-mean.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
const leven = require('leven')
1+
const { distance } = require('fastest-levenshtein')
22
const readJson = require('read-package-json-fast')
33
const { cmdList } = require('./cmd-list.js')
44

55
const didYouMean = async (npm, path, scmd) => {
66
const bestCmd = cmdList
7-
.filter(cmd => leven(scmd, cmd) < scmd.length * 0.4 && scmd !== cmd)
7+
.filter(cmd => distance(scmd, cmd) < scmd.length * 0.4 && scmd !== cmd)
88
.map(str => ` npm ${str} # ${npm.commands[str].description}`)
99

1010
const pkg = await readJson(`${path}/package.json`)
1111
const { scripts } = pkg
1212
// We would already be suggesting this in `npm x` so omit them here
1313
const runScripts = ['stop', 'start', 'test', 'restart']
1414
const bestRun = Object.keys(scripts || {})
15-
.filter(cmd => leven(scmd, cmd) < scmd.length * 0.4 &&
15+
.filter(cmd => distance(scmd, cmd) < scmd.length * 0.4 &&
1616
!runScripts.includes(cmd))
1717
.map(str => ` npm run ${str} # run the "${str}" package script`)
1818

1919
const { bin } = pkg
2020
const bestBin = Object.keys(bin || {})
21-
.filter(cmd => leven(scmd, cmd) < scmd.length * 0.4)
21+
.filter(cmd => distance(scmd, cmd) < scmd.length * 0.4)
2222
.map(str => ` npm exec ${str} # run the "${str}" command from either this or a remote npm package`)
2323

2424
const best = [...bestCmd, ...bestRun, ...bestBin]

node_modules/fastest-levenshtein/LICENSE.md

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/fastest-levenshtein/index.d.ts

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/fastest-levenshtein/index.js

+147
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/fastest-levenshtein/package.json

+63
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/fastest-levenshtein/test.js

+64
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/leven/index.d.ts

-21
This file was deleted.

0 commit comments

Comments
 (0)