common-config
Version:
Config store for values that are commonly needed by project scaffolders, like Generate or Yeoman.
150 lines (98 loc) • 4.74 kB
Markdown
# common-config [](https://www.npmjs.com/package/common-config) [](https://npmjs.org/package/common-config) [](https://travis-ci.org/jonschlinkert/common-config)
Config store for values that are commonly needed by project scaffolders, like Generate or Yeoman.
## TOC
- [CLI](#cli)
* [Installation](#installation)
* [Usage](#usage)
* [init](#init)
- [API](#api)
* [Installation](#installation-1)
* [Usage](#usage-1)
- [About](#about)
* [Related projects](#related-projects)
* [Contributing](#contributing)
* [Running tests](#running-tests)
* [Author](#author)
* [License](#license)
_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_
It's common for build systems, project scaffolders and other applications to need certain basic information about the user. For example, `author.name` might be used for populating templates or commit messages, etc.
This library is an API and CLI for setting and getting these commonly needed values from a config store in the `~/.data-store/common-config` directory.
## CLI
### Installation
Install globally with [npm](https://www.npmjs.com/)
```sh
$ npm install --global common-config
```
### Usage
```sh
$ common-config --help
Usage: common-config <command> [value]
Commands:
--init, -i Initialize a prompt to store common values
--set, -s Save a value to the common-config store
--get, -g Show all values, or a specific value from the common-config store
--del, -d Delete a value from the common-config store
--help Display this menu
```
### init
Initialize a prompt session to populate the store with default values:
```sh
$ common-config --init
```
**Properties**
Answers are used to populate the following properties on the `config.data` object:
* `author.name`
* `author.username`
* `author.twitter`
* `author.url`
* `license`
**Questions**
To get the values, the following questions are asked:
* `Full name?`: Your full name, saved to the `author.name` property.
* `GitHub username?`: Your GitHub username, saved to the `author.username` property.
* `Twitter username?`: Twitter username, saved to the `author.twitter` property.
* `URL?`: URL, saved to the `author.url` property.
* `Preferred license?`: Preferred license to use when initializing new projects. Saved to the `license` property.
## API
### Installation
Install with [npm](https://www.npmjs.com/):
```sh
$ npm install --save common-config
```
### Usage
Add to your application using node.js `require()` system:
```js
var config = require('common-config');
config.set('author.name', 'Jon Schlinkert');
config.set('author.username', 'jonschlinkert');
console.log(config.get('author.name'));
//=> 'Jon Schlinkert'
console.log(config.get('author.username'));
//=> 'jonschlinkert'
console.log(config.get('author'));
//=> {name: 'Jon Schlinkert', username: 'jonschlinkert'}
console.log(config.data);
//=> {author: {name: 'Jon Schlinkert', username: 'jonschlinkert'}}
```
See the [unit tests](test.js) for more examples.
## About
### Related projects
You might also be interested in these projects:
* [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://github.com/node-base/base-store) | [homepage](https://github.com/node-base/base-store "Plugin for getting and persisting config values with your base-methods application. Adds a 'store' object that exposes all of the methods from the data-store library. Also now supports sub-stores!")
* [data-store](https://www.npmjs.com/package/data-store): Easily get, set and persist config data. | [homepage](https://github.com/jonschlinkert/data-store "Easily get, set and persist config data.")
### Contributing
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).
### 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/jonschlinkert/common-config/blob/master/LICENSE).
***
_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on July 11, 2016._