# base-config [![NPM version](https://img.shields.io/npm/v/base-config.svg?style=flat)](https://www.npmjs.com/package/base-config) [![NPM downloads](https://img.shields.io/npm/dm/base-config.svg?style=flat)](https://npmjs.org/package/base-config) [![Build Status](https://img.shields.io/travis/node-base/base-config.svg?style=flat)](https://travis-ci.org/node-base/base-config) > base-methods plugin that adds a `config` method for mapping declarative configuration values to other 'base' methods or custom functions. ## Install Install with [npm](https://www.npmjs.com/): ```sh $ npm install base-config --save ``` ## Usage ```js var config = require('base-config'); var base = require('base'); var app = base(); // register the plugin app.use(config()); ``` ## Mapped methods The following methods are mapped by default, but any of them can be [overridden](#map-custom-methods) using `app.config.map()`: * `.cwd` * `.data` * `.define` * `.del` * `.disable` * `.disabled` * `.enable` * `.enabled` * `.get` * `.has` * `.option` * `.set` * `.store` * `.use` ## Map custom methods > Map properties on a configuration object to methods on `app`. Each key on the given object should match the name of a method on `app`. ```js // call `config` as a function app.config({ set: function(val) { app.set(val); } }); // or use the `map` method app.config .map('set') .map('get') .map('has'); ``` ## Process Iterate over each property on the given object or array of objects, and call the mapped method that matches property key. ```js //=> calls `app.set('foo', 'bar'); app.config.process({set: {foo: 'bar'}}, function(err) { if (err) throw err; }); ``` ## API ### [create](index.js#L30) Create a function for mapping `app` properties onto the given `prop` namespace. **Params** * `prop` **{String}**: The namespace to use * `argv` **{Object}** * `returns` **{Object}** ## Related projects You might also be interested in these projects: * [base](https://www.npmjs.com/package/base): base is the foundation for creating modular, unit testable and highly pluggable node.js applications, starting… [more](https://www.npmjs.com/package/base) | [homepage](https://github.com/node-base/base) * [base-cli](https://www.npmjs.com/package/base-cli): Plugin for base-methods that maps built-in methods to CLI args (also supports methods from a… [more](https://www.npmjs.com/package/base-cli) | [homepage](https://github.com/node-base/base-cli) * [base-data](https://www.npmjs.com/package/base-data): adds a `data` method to base-methods. | [homepage](https://github.com/jonschlinkert/base-data) * [base-options](https://www.npmjs.com/package/base-options): Adds a few options methods to base-methods, like `option`, `enable` and `disable`. See the readme… [more](https://www.npmjs.com/package/base-options) | [homepage](https://github.com/jonschlinkert/base-options) * [base-plugins](https://www.npmjs.com/package/base-plugins): Upgrade's plugin support in base applications to allow plugins to be called any time after… [more](https://www.npmjs.com/package/base-plugins) | [homepage](https://github.com/node-base/base-plugins) * [base-store](https://www.npmjs.com/package/base-store): Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object… [more](https://www.npmjs.com/package/base-store) | [homepage](https://github.com/node-base/base-store) ## Contributing Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/base-config/issues/new). ## Building docs Generate readme and API documentation with [verb](https://github.com/verbose/verb): ```sh $ npm install verb && npm run docs ``` Or, if [verb](https://github.com/verbose/verb) is installed globally: ```sh $ verb ``` ## Running tests Install dev dependencies: ```sh $ npm install -d && npm test ``` ## Author **Jon Schlinkert** * [github/jonschlinkert](https://github.com/jonschlinkert) * [twitter/jonschlinkert](http://twitter.com/jonschlinkert) ## License Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). Released under the [MIT license](https://github.com/node-base/base-config/blob/master/LICENSE). *** _This file was generated by [verb](https://github.com/verbose/verb), v, on March 25, 2016._