# @nod/configuration

> Merges environment config, default properties, and runtime options.

Latest version **0.1.0** (published 2016-01-27) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @nod/configuration
pnpm add @nod/configuration
yarn add @nod/configuration
bun add @nod/configuration
```

## 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.0 |
| Published | 2016-01-27 |
| First published | 2016-01-27 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 5 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | NOD studios |
| Maintainers | nod |
| Keywords | configuration, environment, variable, config, merge, nod, es6, es7 |

## Links

- npm: https://www.npmjs.com/package/@nod/configuration
- Repository: https://github.com/nod-studios/configuration
- Homepage: https://github.com/nod-studios/configuration#readme
- Issues: https://github.com/nod-studios/configuration/issues
- npm.io page: https://npm.io/package/@nod/configuration

## Dependencies (5)

- [decorate-this](https://npm.io/package/decorate-this.md) ^0.5.0
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.3.14
- [@nod/environment](https://npm.io/package/@nod/environment.md) ^4.6.1
- [autobind-decorator](https://npm.io/package/autobind-decorator.md) ^1.3.3
- [source-map-support](https://npm.io/package/source-map-support.md) ^0.4.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.0 (latest) — 2016-01-27

## README

# @nod/configuration

Merges [environment config](https://github.com/nod-studios/environment), [default properties](./src/configuration.js) and runtime options.

You can add strict type checking for configuration object parameters with [Merger](./src/merger.js) class.
See below for details.

Supports ES5, ES7, AMD, CommonJS, System and EcmaScript modules.

[![GitHub tag][tag-image]][tag-url]
[![Build status][build-image]][build-url]
[![Dependency Status][david-image]][david-url]
[![Join the chat][gitter-image]][gitter-url]


## Usage:

### Installation:
```
npm install --save @nod/configuration
```

### Examples:

#### Usage :
```javascript
import { Configuration } from '@nod/configuration';

process.env.DUMMY_TEST = 'works';

class ExampleConfiguration extends Configuration {
  //add some default properties
  example = true;
}

let config = new ExampleConfiguration({
  example = false
};

console.log(config.example, config.dummy.test);
//outputs : false, 'works'
```

#### Typesafe :
```javascript
import { Configuration, Merger } from '@nod/configuration';
import { param, returns, Optional as optional } from 'decorate-this';

class ExampleConfiguration extends Configuration {
  //add some default properties
  example = true;
  dummy = 'should check this for string';
}

class ExampleMerger extends Merger {

  @param(optional({
    example : Boolean,
    dummy   : optional(String)
  }))
  @returns(Object)
  setOptions(options = {}) {
    return super.setOptions(options);
  }

}

let config = new ExampleConfiguration({}, ExampleMerger);
```


### Build and develop:
```bash
gulp
#will build and start watching for changes
```
or

```bash
npm run build
npm run watch
```
or

```bash
npm run default
```

Please check other available gulp tasks with:
```bash
gulp -T
```

## TODO:
- Gulp tasks as another dependency
- More detailed inline docs

## Support:
[![Send e-mail][mail-image]][mail-url]
[![Join the chat][gitter-image]][gitter-url]

[![forthebadge](http://forthebadge.com/images/badges/built-with-love.svg)](http://nod.st)
by [NOD studios](http://nod.st)


[logo-image]: ./image/logo.strap.png?raw=true
[repo-url]: https://github.com/NOD-studios/configuration
[david-url]: https://david-dm.org/NOD-studios/configuration
[david-image]: https://david-dm.org/NOD-studios/configuration.svg
[gitter-image]: https://img.shields.io/badge/GITTER-join%20chat-green.svg
[gitter-url]: http://bit.ly/NOD-chat
[mail-image]: https://img.shields.io/badge/send-email-green.svg
[mail-url]: mailto:hey@nod.st
[tag-image]: https://img.shields.io/github/tag/NOD-studios/configuration.svg
[tag-url]: https://github.com/NOD-studios/configuration/tags
[build-image]: https://travis-ci.org/NOD-studios/configuration.svg
[build-url]: https://travis-ci.org/NOD-studios/configuration

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