UNPKG

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
# common-config [![NPM version](https://img.shields.io/npm/v/common-config.svg?style=flat)](https://www.npmjs.com/package/common-config) [![NPM downloads](https://img.shields.io/npm/dm/common-config.svg?style=flat)](https://npmjs.org/package/common-config) [![Build Status](https://img.shields.io/travis/jonschlinkert/common-config.svg?style=flat)](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._