12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- var lang = require('mout/lang');
- var object = require('mout/object');
- var rc = require('./util/rc');
- var defaults = require('./util/defaults');
- var expand = require('./util/expand');
- var path = require('path');
- function Config(cwd) {
- this._cwd = cwd || process.cwd();
- this._config = {};
- }
- Config.prototype.load = function () {
- this._config = rc('bower', defaults, this._cwd);
- return this;
- };
- Config.prototype.get = function (key) {
- // TODO
- };
- Config.prototype.set = function (key, value) {
- // TODO
- return this;
- };
- Config.prototype.del = function (key, value) {
- // TODO
- return this;
- };
- Config.prototype.save = function (where, callback) {
- // TODO
- };
- Config.prototype.toObject = function () {
- var config = lang.deepClone(this._config);
- config = Config.normalise(config);
- return config;
- };
- Config.create = function (cwd) {
- return new Config(cwd);
- };
- Config.read = function (cwd) {
- var config = new Config(cwd);
- return config.load().toObject();
- };
- Config.normalise = function (rawConfig) {
- var config = {};
- // Mix in defaults and raw config
- object.deepMixIn(config, expand(defaults), expand(rawConfig));
- // Some backwards compatible things..
- config.shorthandResolver = config.shorthandResolver
- .replace(/\{\{\{/g, '{{')
- .replace(/\}\}\}/g, '}}');
- // Ensure that every registry endpoint does not end with /
- config.registry.search = config.registry.search.map(function (url) {
- return url.replace(/\/+$/, '');
- });
- config.registry.register = config.registry.register.replace(/\/+$/, '');
- config.registry.publish = config.registry.publish.replace(/\/+$/, '');
- config.tmp = path.resolve(config.tmp);
- return config;
- };
- Config.DEFAULT_REGISTRY = defaults.registry;
- module.exports = Config;
|