mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 16:28:38 +09:00
Move Add-on SDK source to toolkit/jetpack
This commit is contained in:
parent
0a03067ee3
commit
23b67db438
993 changed files with 484 additions and 100663 deletions
|
|
@ -1,70 +0,0 @@
|
|||
# diffpatcher
|
||||
|
||||
[](http://travis-ci.org/Gozala/diffpatcher)
|
||||
|
||||
[](http://ci.testling.com/Gozala/diffpatcher)
|
||||
|
||||
Diffpatcher is a small library that lets you treat hashes as if they were
|
||||
git repositories.
|
||||
|
||||
## diff
|
||||
|
||||
Diff function that takes two hashes and returns delta hash.
|
||||
|
||||
```js
|
||||
var diff = require("diffpatcher/diff")
|
||||
|
||||
diff({ a: { b: 1 }, c: { d: 2 } }, // hash#1
|
||||
{ a: { e: 3 }, c: { d: 4 } }) // hash#2
|
||||
|
||||
// => { // delta
|
||||
// a: {
|
||||
// b: null, // -
|
||||
// e: 3 // +
|
||||
// },
|
||||
// c: {
|
||||
// d: 4 // ±
|
||||
// }
|
||||
// }
|
||||
```
|
||||
|
||||
As you can see from the example above `delta` makes no real distinction between
|
||||
proprety upadate and property addition. Try to think of additions as an update
|
||||
from `undefined` to whatever it's being updated to.
|
||||
|
||||
## patch
|
||||
|
||||
Patch fuction takes a `hash` and a `delta` and returns a new `hash` which is
|
||||
just like orginial but with delta applied to it. Let's apply delta from the
|
||||
previous example to the first hash from the same example
|
||||
|
||||
|
||||
```js
|
||||
var patch = require("diffpatcher/patch")
|
||||
|
||||
patch({ a: { b: 1 }, c: { d: 2 } }, // hash#1
|
||||
{ // delta
|
||||
a: {
|
||||
b: null, // -
|
||||
e: 3 // +
|
||||
},
|
||||
c: {
|
||||
d: 4 // ±
|
||||
}
|
||||
})
|
||||
|
||||
// => { a: { e: 3 }, c: { d: 4 } } // hash#2
|
||||
```
|
||||
|
||||
That's about it really, just diffing hashes and applying thes diffs on them.
|
||||
|
||||
|
||||
### rebase
|
||||
|
||||
And as Linus mentioned everything in git can be expressed with `rebase`, that
|
||||
also pretty much the case for `diffpatcher`. `rebase` takes `target` hash,
|
||||
and rebases `parent` onto it with `diff` applied.
|
||||
|
||||
## Install
|
||||
|
||||
npm install diffpatcher
|
||||
Loading…
Add table
Add a link
Reference in a new issue