aboutsummaryrefslogtreecommitdiff
path: root/node_modules/npm-conf/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/npm-conf/index.js')
-rw-r--r--node_modules/npm-conf/index.js43
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);