diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-04-03 15:43:32 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-04-03 15:45:57 +0200 |
commit | 71e285b94c7edaa43aa8115965cf5a36b8e0f80a (patch) | |
tree | 7d4aa9d0d5aff686b106cd5da72ba77960c4af43 /deps/node/deps/npm/lib/config/load-prefix.js | |
parent | 7dadf9356b4f3f4137ce982ea5bb960283116e9a (diff) | |
download | akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.gz akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.tar.bz2 akono-71e285b94c7edaa43aa8115965cf5a36b8e0f80a.zip |
Node.js v11.13.0
Diffstat (limited to 'deps/node/deps/npm/lib/config/load-prefix.js')
-rw-r--r-- | deps/node/deps/npm/lib/config/load-prefix.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/deps/node/deps/npm/lib/config/load-prefix.js b/deps/node/deps/npm/lib/config/load-prefix.js new file mode 100644 index 00000000..090865d2 --- /dev/null +++ b/deps/node/deps/npm/lib/config/load-prefix.js @@ -0,0 +1,51 @@ +module.exports = loadPrefix + +var findPrefix = require('find-npm-prefix') +var path = require('path') + +function loadPrefix (cb) { + var cli = this.list[0] + + Object.defineProperty(this, 'prefix', + { + set: function (prefix) { + var g = this.get('global') + this[g ? 'globalPrefix' : 'localPrefix'] = prefix + }.bind(this), + get: function () { + var g = this.get('global') + return g ? this.globalPrefix : this.localPrefix + }.bind(this), + enumerable: true + }) + + Object.defineProperty(this, 'globalPrefix', + { + set: function (prefix) { + this.set('prefix', prefix) + }.bind(this), + get: function () { + return path.resolve(this.get('prefix')) + }.bind(this), + enumerable: true + }) + + var p + Object.defineProperty(this, 'localPrefix', + { set: function (prefix) { p = prefix }, + get: function () { return p }, + enumerable: true }) + + // try to guess at a good node_modules location. + // If we are *explicitly* given a prefix on the cli, then + // always use that. otherwise, infer local prefix from cwd. + if (Object.prototype.hasOwnProperty.call(cli, 'prefix')) { + p = path.resolve(cli.prefix) + process.nextTick(cb) + } else { + findPrefix(process.cwd()).then((found) => { + p = found + cb() + }, cb) + } +} |