var Conf = require('../config/core.js').Conf var CachingRegClient = require('../cache/caching-client.js') var log = require('npmlog') module.exports = getPublishConfig function getPublishConfig (publishConfig, defaultConfig, defaultClient) { var config = defaultConfig var client = defaultClient log.verbose('getPublishConfig', publishConfig) if (publishConfig) { config = new Conf(defaultConfig) config.save = defaultConfig.save.bind(defaultConfig) // don't modify the actual publishConfig object, in case we have // to set a login token or some other data. config.unshift(Object.keys(publishConfig).reduce(function (s, k) { s[k] = publishConfig[k] return s }, {})) client = new CachingRegClient(config) } return { config: config, client: client } }