# apply-changes

> Apply Array/Object.observe format changesets to an object.

Latest version **0.0.1** (published 2013-11-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install apply-changes
pnpm add apply-changes
yarn add apply-changes
bun add apply-changes
```

## 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.0.1 |
| Published | 2013-11-12 |
| First published | 2013-11-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Tim Oxley |
| Maintainers | timoxley |
| Keywords | observe, changeset, changes, replication |

## Links

- npm: https://www.npmjs.com/package/apply-changes
- Repository: https://github.com/timoxley/apply-changes
- Issues: https://github.com/timoxley/apply-changes/issues
- npm.io page: https://npm.io/package/apply-changes

## Dependencies (1)

- [tape](https://npm.io/package/tape.md) ~2.1.0

## Recent versions

- 0.0.1 (latest) — 2013-11-12

## README

# apply-changes

Take a changes array in the format produced by `Object.observe` and `Array.observe`, and apply those changes to another object.

### Example

```js

var apply = require('apply-changes')

var localUser = {
  name: 'Original'
}

var remoteUser = {
  name: 'Original'
}

Object.observe(localUser, function(changes) {
  apply(remoteUser, changes)
  console.log(remoteUser.name) // 'Updated' 
  console.log(localUser.name === remoteUser.name) // true
})

localUser.name = 'Updated'

```


### Why

Say you have an environment where `Object.observe` is implemented (e.g.
node 0.11.x), and you want to easily replicate changes to another environment
perhaps one without `Object.observe` (e.g. vintage
2013 web browser). In this scenario, you could send a raw stream of changes
directly from `Object.observe` callback to `observe-apply` to have
changes applied in the other environment. 

## Caveats

**The recipient of the changes must be treated as read-only.**
`apply-changes` does not verify the state of recieving object matches the state
of source object. Updates are likely to corrupt data if you change the recipient
object.

# Licence

MIT

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