/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib
// take a path and a resolved value, and turn it into a resolution from // the given new path. This is used with converting a package.json's // relative file: path into one suitable for a lockfile, or between // lockfiles, and for converting hosted git repos to a consistent url type. const npa = require('npm-package-arg') const relpath = require('./relpath.js') const consistentResolve = (resolved, fromPath, toPath, relPaths = false) => { if (!resolved) { return null } try { const hostedOpt = { noCommittish: false } const { fetchSpec, saveSpec, type, hosted, rawSpec, raw, } = npa(resolved, fromPath) const isPath = type === 'file' || type === 'directory' return isPath && !relPaths ? `file:${fetchSpec.replace(/#/g, '%23')}` : isPath ? 'file:' + (toPath ? relpath(toPath, fetchSpec.replace(/#/g, '%23')) : fetchSpec.replace(/#/g, '%23')) : hosted ? `git+${ hosted.auth ? hosted.https(hostedOpt) : hosted.sshurl(hostedOpt) }` : type === 'git' ? saveSpec // always return something. 'foo' is interpreted as 'foo@' otherwise. : rawSpec === '' && raw.slice(-1) !== '@' ? raw // just strip off the name, but otherwise return as-is : rawSpec } catch (_) { // whatever we passed in was not acceptable to npa. // leave it 100% untouched. return resolved } } module.exports = consistentResolve
.
Edit
..
Edit
add-rm-pkg-deps.js
Edit
arborist
Edit
audit-report.js
Edit
calc-dep-flags.js
Edit
can-place-dep.js
Edit
case-insensitive-map.js
Edit
consistent-resolve.js
Edit
debug.js
Edit
deepest-nesting-target.js
Edit
dep-valid.js
Edit
diff.js
Edit
edge.js
Edit
from-path.js
Edit
gather-dep-set.js
Edit
get-workspace-nodes.js
Edit
index.js
Edit
inventory.js
Edit
link.js
Edit
node.js
Edit
optional-set.js
Edit
override-resolves.js
Edit
override-set.js
Edit
peer-entry-sets.js
Edit
place-dep.js
Edit
printable.js
Edit
query-selector-all.js
Edit
realpath.js
Edit
relpath.js
Edit
reset-dep-flags.js
Edit
retire-path.js
Edit
shrinkwrap.js
Edit
signal-handling.js
Edit
signals.js
Edit
spec-from-lock.js
Edit
tracker.js
Edit
tree-check.js
Edit
version-from-tgz.js
Edit
vuln.js
Edit
yarn-lock.js
Edit