# node-config-normalizer

Merge configuration objects from several sources — environment values, JSON files, CLI flags —
into one plain object with predictable precedence.

## Install

```sh
npm i node-config-normalizer
```

## Usage

```js
const normalize = require('node-config-normalizer');

const config = normalize(
  {
    server: { port: 8080 },
    logLevel: 'debug'
  },
  {
    server: { host: '127.0.0.1', port: 3000 },
    logLevel: 'info'
  }
);

// {
//   server: { host: '127.0.0.1', port: 8080 },
//   logLevel: 'debug'
// }
```

Nested plain objects are merged recursively. Everything else — arrays, `null`, primitives —
replaces the previous value. `undefined` keys are dropped rather than written over a default.

## API

### `normalize(source, defaults?)`

Returns a new object. Neither argument is mutated. Both are optional; a non-object argument is
treated as `{}`.

## License

MIT
