# merges-utils

> A merge utils supports multiple merges.

Latest version **1.0.3** (published 2017-05-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install merges-utils
pnpm add merges-utils
yarn add merges-utils
bun add merges-utils
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2017-05-16 |
| First published | 2017-05-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | CHENXCHEN |
| Maintainers | chenxchen |
| Keywords | object, merge, recursive |

## Links

- npm: https://www.npmjs.com/package/merges-utils
- Repository: https://github.com/CHENXCHEN/merges-utils
- Homepage: https://github.com/CHENXCHEN/merges-utils#readme
- Issues: https://github.com/CHENXCHEN/merges-utils/issues
- npm.io page: https://npm.io/package/merges-utils

## Recent versions

- 1.0.3 (latest) — 2017-05-16
- 1.0.2 — 2017-05-08
- 1.0.1 — 2017-05-08
- 1.0.0 — 2017-05-08

## README

# merge-utils
## Install
```bash
$ npm install merges-utils
```
## Usage
### right values cover left
```javascript
var merge = require('merges-utils')
var a = {
    'a': 123, 'b': 456,
    'c': {
        'd': [123, 34],
        'e': { 'f': 123, 'g': true }
    },
    'd': true
}
var b = {
    'a': 998, 'b': 466,
    'c': {
        'd': [133, 35],
        'e': { 'f': 126, 'g': false }
    }
}
var c = {
    'd': false,
}
var res = merge([a, b, c])
console.log(res)
/* result:
{ a: 998, b: 466,
  c: { d: [ 133, 35 ], e: { f: 126, g: false } },
  d: false }
 */
```
### diy merge method
```javascript
var merge = require('merges-utils')
var a = {
    'a': 123, 'b': 456,
    'c': {
        'd': [123, 34],
        'e': { 'f': 123, 'g': true }
    },
    'd': true
}
var b = {
    'a': 998, 'b': 466,
    'c': {
        'd': [133, 35],
        'e': { 'f': 126, 'g': false }
    }
}
var c = {
    'd': false,
}
var res = merge([a, b, c], {
    'a': true,
    'c': {
        'd': true
    }
})
console.log(res)
/*
{ a: 123, b: 466,
  c: { d: [ 123, 34 ], e: { f: 126, g: false } },
  d: false }
 */
```
### n-level always keep former values
```javascript
var merge = require('merges-utils')
var a = {
    'a': 123, 'b': 456,
    'c': {
        'd': [123, 34],
        'e': { 'f': 123, 'g': true }
    },
    'd': true
}
var b = {
    'a': 998, 'b': 466,
    'c': {
        'd': [133, 35],
        'e': { 'f': 126, 'g': false }
    }
}
var c = {
    'd': false,
}
var res = merge([a, b, c], {}, 2)
console.log(res)
/*
{ a: 123, b: 456,
  c: { d: [ 123, 34 ], e: { f: 123, g: true } },
  d: true }
 */
```
```javascript
var merge = require('merges-utils')
var a = {
    'a': 123, 'b': 456,
    'c': {
        'd': [123, 34],
        'e': { 'f': 123, 'g': true }
    },
    'd': true
}
var d = {
    'c': {
        'e': {'f': 126, 'g': false}
    }
}
var res = merge([a, d], {
    'c': {
        'e': { 'g': true },
        'd': true
    }
},2)
console.log(res)
/*
{ a: 123,
  b: 456,
  c: { d: [ 123, 34 ], e: { f: 126, g: true } },
  d: true }
 */
```
### others
```javascript
var merge = require('../lib/index.js')
var res = merge([{'a': {'b': 1, 'd': {'e': 12}}}, {'a': {'c': 1, 'd': 12}}] )
console.log(res);
/*
{ a: { b: 1, d: { e: 12 }, c: 1 } }
 */
```
## options
```javascript
function merge([obj1, obj2, ...],{
    'key1': true,
    /*
    Keep the leftmost value
    example:
    var res = merge([{'a': 100}, {'a': 200}], { 'a': true })
    result:
    {'a': 100}
    */
    'key2': false,
    /*
    Keep the rightmost value.
    example:
    var res = merge([{'a': 100}, {'a': 200}], { 'a': false})
    or
    var res = merge([{'a': 100}, {'a': 200}])
    result:
    {'a': 200}
    */
},
level
/*
    Keep the left value of the previous n layer
    Option exception
    example:
    var res1 = merge([{'a': 100, 'b': {'c': 1}}, {'a': 200, 'b': {'c': 2}}], {}, 1)
    var res2 = merge([{'a': 100, 'b': {'c': 1, 'd': 1}}, {'a': 200, 'b': {'c': 2, 'd': 2}}], {'b': { 'c': false}}, 1)
    result:
    res1 = { 'a': 100, 'b': { 'c': 1}}
    res2 = { 'a: 100, 'b': { 'c': 2, d: 2 } }
*/
)
```

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