module.exports = loadPrefix var findPrefix = require("./find-prefix.js") 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(), function (er, found) { p = found cb(er) }) } }