# common-config

> Config store for values that are commonly needed by project scaffolders, like Generate or Yeoman.

Latest version **0.1.1** (published 2020-01-22) · MIT license · 0 weekly downloads

## Install

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

Provides the command `common-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.1.1 |
| Published | 2020-01-22 |
| First published | 2016-07-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=0.10.0 |
| Dependencies | 13 |
| Unpacked size | 13.6 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 9 |
| Author | Jon Schlinkert |
| Maintainers | jonschlinkert |
| Keywords | cache, common, config, data, global, preferences, save, settings, store |

## Links

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

## Dependencies (13)

- [composer](https://npm.io/package/composer.md) ^0.13.0
- [get-value](https://npm.io/package/get-value.md) ^2.0.6
- [log-utils](https://npm.io/package/log-utils.md) ^0.2.0
- [set-value](https://npm.io/package/set-value.md) ^3.0.1
- [data-store](https://npm.io/package/data-store.md) ^0.16.1
- [lazy-cache](https://npm.io/package/lazy-cache.md) ^2.0.1
- [omit-empty](https://npm.io/package/omit-empty.md) ^0.4.1
- [text-table](https://npm.io/package/text-table.md) ^0.2.0
- [object.pick](https://npm.io/package/object.pick.md) ^1.1.2
- [strip-color](https://npm.io/package/strip-color.md) ^0.1.0
- [yargs-parser](https://npm.io/package/yargs-parser.md) ^2.4.0
- [question-cache](https://npm.io/package/question-cache.md) ^0.4.0
- [tableize-object](https://npm.io/package/tableize-object.md) ^0.1.0

## Alternatives

- [jsforce](https://npm.io/package/jsforce.md) — 851.2K weekly downloads
- [react-native-qrcode-svg](https://npm.io/package/react-native-qrcode-svg.md) — 693.5K weekly downloads
- [@salesforce/plugin-data](https://npm.io/package/@salesforce/plugin-data.md) — 394.9K weekly downloads
- [@backstage/plugin-search-common](https://npm.io/package/@backstage/plugin-search-common.md) — 308.5K weekly downloads
- [@chain-registry/types](https://npm.io/package/@chain-registry/types.md) — 38.4K weekly downloads

## Recent versions

- 0.1.1 (latest) — 2020-01-22
- 0.1.0 — 2016-07-11

## README

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

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