diff options
Diffstat (limited to 'node_modules/npm-conf/index.js')
-rw-r--r-- | node_modules/npm-conf/index.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/node_modules/npm-conf/index.js b/node_modules/npm-conf/index.js new file mode 100644 index 0000000..ee735e1 --- /dev/null +++ b/node_modules/npm-conf/index.js @@ -0,0 +1,43 @@ +'use strict'; +const path = require('path'); +const Conf = require('./lib/conf'); +const defaults = require('./lib/defaults'); + +// https://github.com/npm/npm/blob/latest/lib/config/core.js#L101-L200 +module.exports = opts => { + const conf = new Conf(Object.assign({}, defaults.defaults)); + + conf.add(Object.assign({}, opts), 'cli'); + conf.addEnv(); + conf.loadPrefix(); + + const projectConf = path.resolve(conf.localPrefix, '.npmrc'); + const userConf = conf.get('userconfig'); + + if (!conf.get('global') && projectConf !== userConf) { + conf.addFile(projectConf, 'project'); + } else { + conf.add({}, 'project'); + } + + conf.addFile(conf.get('userconfig'), 'user'); + + if (conf.get('prefix')) { + const etc = path.resolve(conf.get('prefix'), 'etc'); + conf.root.globalconfig = path.resolve(etc, 'npmrc'); + conf.root.globalignorefile = path.resolve(etc, 'npmignore'); + } + + conf.addFile(conf.get('globalconfig'), 'global'); + conf.loadUser(); + + const caFile = conf.get('cafile'); + + if (caFile) { + conf.loadCAFile(caFile); + } + + return conf; +}; + +module.exports.defaults = Object.assign({}, defaults.defaults); |