# deep-spread

> Merges recursively 2 objects

Latest version **1.3.1** (published 2020-04-21) · ISC license · 0 weekly downloads

## Install

```sh
npm install deep-spread
pnpm add deep-spread
yarn add deep-spread
bun add deep-spread
```

## 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.3.1 |
| Published | 2020-04-21 |
| First published | 2020-04-07 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Leandro Cotti |
| Maintainers | lefcott |
| Keywords | object, deep, spread, recursive speading, merge objects, merge 2 objects, merging recursively, inject json, configuration, config object, fusion, merge n objects |

## Links

- npm: https://www.npmjs.com/package/deep-spread
- Repository: https://github.com/lefcott19/deep-spread
- Homepage: https://github.com/lefcott19/deep-spread#readme
- Issues: https://github.com/lefcott19/deep-spread/issues
- npm.io page: https://npm.io/package/deep-spread

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

- 1.3.1 (latest) — 2020-04-21
- 1.3.0 — 2020-04-21
- 1.2.1 — 2020-04-20
- 1.2.0 — 2020-04-20
- 1.1.1 — 2020-04-07
- 1.1.0 — 2020-04-07
- 1.0.1 — 2020-04-07
- 1.0.0 — 2020-04-07

## README

# deep-spread
Merges recursively 2 or N objects!

### Usage with 2 objects:
```js
const { inject, deepSpread } = require('deep-spread');

const Injected = {
  A: {
    B: {
      C: 1,
      D: 'Hello',
      E: true
    }
  },
  F: 45
};
const Injector = {
  A: {
    G: 'FromInjector',
    B: {
      H: 'FromInjector'
    }
  },
  F: 'FromInjector'
}
// Here there are 2 alternatives with the same result
const Merged1 = inject(Injector).to(Injected);
const Merged2 = deepSpread(Injector, Injected);

console.log(Merged1);
```

### Result:
```js
({
  A: {
    B: { C: 1, D: 'Hello', E: true, H: 'FromInjector' },
    G: 'FromInjector'
  },
  F: 'FromInjector'
})
```

### Usage with N objects:
```js
const { injectN } = require('deep-spread');

const Object1 = {
  z: 1,
  A: 1
};
const Object2 = {
  z: 2,
  B: 2
};
const Object3 = {
  z: 3,
  C: 3
};
const Object4 = {
  z: 4,
  D: 4
};
const Merged = injectN(Object4).to(Object3).to(Object2).to(Object1).result;

console.log(Merged);
```

### Result:
```js
({ z: 4, A: 1, B: 2, C: 3, D: 4 })
```

### Replacing recursively all the ocurrences of values in a JSON:
```js
const { replace } = require('deep-spread');

const Object1 = {
  a: 'Hello {{ Name }} {{ Surname }}!!',
  b: 'Hi {{Name}} {{ Surname }}.',
  c: {
    d: {
      e: 'Bye {{ Name}} {{ Surname }}',
      f: 'Goodbye {{Name }} {{ Surname }}!'
    }
  }
};
const Values = { Name: 'MR.', Surname: 'Something' };

replace(Values, '{}', 2, true).in(Object1);
```

### Result:
```js
({
  a: 'Hello MR. Something!!',
  b: 'Hi MR. Something.',
  c: {
    d: {
      e: 'Bye MR. Something',
      f: 'Goodbye MR. Something!'
    }
  }
})
```

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