MCPcopy Create free account
hub / github.com/nodejs/node / convertVersionsToSpecs

Method convertVersionsToSpecs

deps/npm/lib/commands/diff.js:213–245  ·  view source on GitHub ↗
([a, b])

Source from the content-addressed store, hash-verified

211 }
212
213 async convertVersionsToSpecs ([a, b]) {
214 const semverA = semver.validRange(a)
215 const semverB = semver.validRange(b)
216
217 // both specs are semver versions, assume current project dir name
218 if (semverA && semverB) {
219 let pkgName
220 try {
221 const { content: pkg } = await pkgJson.normalize(this.prefix)
222 pkgName = pkg.name
223 } catch {
224 log.verbose('diff', 'could not read project dir package.json')
225 }
226
227 if (!pkgName) {
228 throw this.usageError('Needs to be run from a project dir in order to diff two versions.')
229 }
230
231 return [`${pkgName}@${a}`, `${pkgName}@${b}`]
232 }
233
234 // otherwise uses the name from the other arg to figure out the spec.name of what to compare
235 if (!semverA && semverB) {
236 return [a, `${npa(a).name}@${b}`]
237 }
238
239 if (semverA && !semverB) {
240 return [`${npa(b).name}@${a}`, b]
241 }
242
243 // no valid semver ranges used
244 return [a, b]
245 }
246
247 async findVersionsByPackageName (specs) {
248 let actualTree

Callers 1

retrieveSpecsMethod · 0.95

Calls 2

verboseMethod · 0.80
usageErrorMethod · 0.80

Tested by

no test coverage detected