/snap/node/11691/lib/node_modules/npm/lib/utils
NameSizeModeActions
audit-error.js10450644editdlrm
auth.js32910644editdlrm
cmd-list.js29590644editdlrm
completion.fish15960644editdlrm
completion.sh18980755editdlrm
did-you-mean.js11880644editdlrm
display.js157490644editdlrm
error-message.js151500644editdlrm
explain-dep.js36480644editdlrm
explain-eresolve.js26170644editdlrm
format-bytes.js6290644editdlrm
format-search-stream.js48080644editdlrm
format.js19570644editdlrm
get-identity.js8020644editdlrm
get-workspaces.js17480644editdlrm
installed-deep.js11290644editdlrm
installed-shallow.js5830644editdlrm
is-windows.js1770644editdlrm
log-file.js79710644editdlrm
npm-usage.js20640644editdlrm
open-url.js24140644editdlrm
output-error.js7670644editdlrm
ping.js2620644editdlrm
queryable.js97850644editdlrm
read-user-info.js19560644editdlrm
reify-finish.js8860644editdlrm
reify-output.js57880644editdlrm
sbom-cyclonedx.js53310644editdlrm
sbom-spdx.js46960644editdlrm
tar.js35520644editdlrm
timers.js21200644editdlrm
update-workspaces.js10130644editdlrm
validate-lockfile.js10230644editdlrm
verify-signatures.js122260644editdlrm
Edit: /snap/node/11691/lib/node_modules/npm/lib/utils/did-you-mean.js (1188B)
const Npm = require('../npm') const { distance } = require('fastest-levenshtein') const { commands } = require('./cmd-list.js') const runScripts = ['stop', 'start', 'test', 'restart'] const isClose = (scmd, cmd) => distance(scmd, cmd) < scmd.length * 0.4 const didYouMean = (pkg, scmd) => { const { scripts = {}, bin = {} } = pkg || {} const best = [ ...commands .filter(cmd => isClose(scmd, cmd) && scmd !== cmd) .map(str => [str, Npm.cmd(str).description]), ...Object.keys(scripts) // We would already be suggesting this in `npm x` so omit them here .filter(cmd => isClose(scmd, cmd) && !runScripts.includes(cmd)) .map(str => [`run ${str}`, `run the "${str}" package script`]), ...Object.keys(bin) .filter(cmd => isClose(scmd, cmd)) /* eslint-disable-next-line max-len */ .map(str => [`exec ${str}`, `run the "${str}" command from either this or a remote npm package`]), ] if (best.length === 0) { return '' } return `\n\nDid you mean ${best.length === 1 ? 'this' : 'one of these'}?\n` + best.slice(0, 3).map(([msg, comment]) => ` npm ${msg} # ${comment}`).join('\n') } module.exports = didYouMean