# base-config

> base-methods plugin that adds a `config` method for mapping declarative configuration values to other 'base' methods or custom functions.

Latest version **0.5.2** (published 2016-03-25) · MIT license · 0 weekly downloads

## Install

```sh
npm install base-config
pnpm add base-config
yarn add base-config
bun add base-config
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.5.2 |
| Published | 2016-03-25 |
| First published | 2015-10-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.10.0 |
| Dependencies | 4 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 12 |
| Author | Jon Schlinkert |
| Maintainers | jonschlinkert |
| Keywords | app, base, baseplugin, cache, command, command-line, config, data, extend, line, merge, method, methods, plugin, store |

## Links

- npm: https://www.npmjs.com/package/base-config
- Repository: https://github.com/node-base/base-config
- Issues: https://github.com/node-base/base-config/issues
- npm.io page: https://npm.io/package/base-config

## Dependencies (4)

- [isobject](https://npm.io/package/isobject.md) ^2.0.0
- [lazy-cache](https://npm.io/package/lazy-cache.md) ^1.0.3
- [map-config](https://npm.io/package/map-config.md) ^0.5.0
- [resolve-dir](https://npm.io/package/resolve-dir.md) ^0.1.0

## Alternatives

- [memory-cache](https://npm.io/package/memory-cache.md) — 795.0K weekly downloads
- [@httptoolkit/proxy-agent](https://npm.io/package/@httptoolkit/proxy-agent.md) — 11.2K weekly downloads
- [express-cache-controller](https://npm.io/package/express-cache-controller.md) — 5.3K weekly downloads
- [http-cache-middleware](https://npm.io/package/http-cache-middleware.md) — 4.5K weekly downloads
- [cache2](https://npm.io/package/cache2.md) — 1.5K weekly downloads

## Recent versions

- 0.5.2 (latest) — 2016-03-25
- 0.5.1 — 2016-03-25
- 0.5.0 — 2016-02-29
- 0.4.2 — 2016-02-15
- 0.4.1 — 2016-02-09
- 0.4.0 — 2016-02-04
- 0.3.7 — 2016-02-02
- 0.3.6 — 2016-01-22
- 0.3.5 — 2016-01-22
- 0.3.4 — 2016-01-20
- 0.3.3 — 2015-12-20
- 0.3.2 — 2015-12-01
- 0.3.1 — 2015-12-01
- 0.3.0 — 2015-11-22
- 0.2.0 — 2015-10-28
- … 3 more at https://npm.io/package/base-config/versions

## README

# 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._

---
_Source: https://npm.io/package/base-config · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
