index.js
function proxy(config) {
  function fn(key, val) {
    if (typeof val === 'string') {
      config.alias.apply(config, arguments);
      return config;
    }

    if (typeof key === 'string') {
      config.map.apply(config, arguments);
      return config;
    }

    if (!utils.isObject(key)) {
      throw new TypeError('expected key to be a string or object');
    }

    for (var prop in key) {
      fn(prop, key[prop]);
    }
    return config;
  }
  fn.__proto__ = config;
  return fn;
}
function proxy(config) {
  function fn(key, val) {
    if (typeof val === 'string') {
      config.alias.apply(config, arguments);
      return config;
    }

    if (typeof key === 'string') {
      config.map.apply(config, arguments);
      return config;
    }

    if (!utils.isObject(key)) {
      throw new TypeError('expected key to be a string or object');
    }

    for (var prop in key) {
      fn(prop, key[prop]);
    }
    return config;
  }
  fn.__proto__ = config;
  return fn;
}
function proxy ( config ) { function fn ( key , val ) { if ( typeof val === 'string' ) { config . alias . apply ( config , arguments ) ; return config ; } if ( typeof key === 'string' ) { config . map . apply ( config , arguments ) ; return config ; } if ( ! utils . isObject ( key ) ) { throw new TypeError ( 'expected key to be a string or object' ) ; } for ( var prop in key ) { fn ( prop , key [ prop ] ) ; } return config ; } fn . __proto__ = config ; return fn ; }
Proxy to support `app.config` as a function or object
with methods, allowing the user to do either of
the following:

```js
base.config({foo: 'bar'});

// or
base.config.map('foo', 'bar');
```
Proxy to support app . config as a function or object with methods allowing the user to do either of the following :