|
|
@ -8,14 +8,14 @@ This library compares two arrays or objects and return a complete diff of their |
|
|
|
|
|
|
|
|
|
|
|
Input |
|
|
|
Input |
|
|
|
|
|
|
|
|
|
|
|
```js |
|
|
|
```diff |
|
|
|
getObjectDiff( |
|
|
|
getObjectDiff( |
|
|
|
{ |
|
|
|
{ |
|
|
|
id: 54, |
|
|
|
id: 54, |
|
|
|
user: { |
|
|
|
user: { |
|
|
|
name: "joe", |
|
|
|
name: "joe", |
|
|
|
member: true, |
|
|
|
- member: true, |
|
|
|
hobbies: ["golf", "football"], |
|
|
|
- hobbies: ["golf", "football"], |
|
|
|
age: 66, |
|
|
|
age: 66, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
@ -23,8 +23,8 @@ getObjectDiff( |
|
|
|
id: 54, |
|
|
|
id: 54, |
|
|
|
user: { |
|
|
|
user: { |
|
|
|
name: "joe", |
|
|
|
name: "joe", |
|
|
|
member: false, |
|
|
|
+ member: false, |
|
|
|
hobbies: ["golf", "chess"], |
|
|
|
+ hobbies: ["golf", "chess"], |
|
|
|
age: 66, |
|
|
|
age: 66, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
@ -33,10 +33,10 @@ getObjectDiff( |
|
|
|
|
|
|
|
|
|
|
|
Output |
|
|
|
Output |
|
|
|
|
|
|
|
|
|
|
|
```js |
|
|
|
```diff |
|
|
|
{ |
|
|
|
{ |
|
|
|
type: "object", |
|
|
|
type: "object", |
|
|
|
status: "updated", |
|
|
|
+ status: "updated", |
|
|
|
diff: [ |
|
|
|
diff: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
property: "id", |
|
|
|
property: "id", |
|
|
@ -58,7 +58,7 @@ Output |
|
|
|
hobbies: ["golf", "chess"], |
|
|
|
hobbies: ["golf", "chess"], |
|
|
|
age: 66, |
|
|
|
age: 66, |
|
|
|
}, |
|
|
|
}, |
|
|
|
status: "updated", |
|
|
|
+ status: "updated", |
|
|
|
subPropertiesDiff: [ |
|
|
|
subPropertiesDiff: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
name: "name", |
|
|
|
name: "name", |
|
|
@ -66,18 +66,18 @@ Output |
|
|
|
currentValue: "joe", |
|
|
|
currentValue: "joe", |
|
|
|
status: "equal", |
|
|
|
status: "equal", |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
+ { |
|
|
|
name: "member", |
|
|
|
+ name: "member", |
|
|
|
previousValue: true, |
|
|
|
+ previousValue: true, |
|
|
|
currentValue: false, |
|
|
|
+ currentValue: false, |
|
|
|
status: "updated", |
|
|
|
+ status: "updated", |
|
|
|
}, |
|
|
|
+ }, |
|
|
|
{ |
|
|
|
+ { |
|
|
|
name: "hobbies", |
|
|
|
+ name: "hobbies", |
|
|
|
previousValue: ["golf", "football"], |
|
|
|
+ previousValue: ["golf", "football"], |
|
|
|
currentValue: ["golf", "chess"], |
|
|
|
+ currentValue: ["golf", "chess"], |
|
|
|
status: "updated", |
|
|
|
+ status: "updated", |
|
|
|
}, |
|
|
|
+ }, |
|
|
|
{ |
|
|
|
{ |
|
|
|
name: "age", |
|
|
|
name: "age", |
|
|
|
previousValue: 66, |
|
|
|
previousValue: 66, |
|
|
@ -97,19 +97,19 @@ It doesn't work yet with duplicated values. |
|
|
|
|
|
|
|
|
|
|
|
Input |
|
|
|
Input |
|
|
|
|
|
|
|
|
|
|
|
```js |
|
|
|
```diff |
|
|
|
getListDiff( |
|
|
|
getListDiff( |
|
|
|
["mbappe", "mendes", "verratti", "ruiz"], |
|
|
|
- ["mbappe", "mendes", "verratti", "ruiz"], |
|
|
|
["mbappe", "messi", "ruiz"] |
|
|
|
+ ["mbappe", "messi", "ruiz"] |
|
|
|
); |
|
|
|
); |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
Output |
|
|
|
Output |
|
|
|
|
|
|
|
|
|
|
|
```js |
|
|
|
```diff |
|
|
|
{ |
|
|
|
{ |
|
|
|
type: "list", |
|
|
|
type: "list", |
|
|
|
status: "updated", |
|
|
|
+ status: "updated", |
|
|
|
diff: [ |
|
|
|
diff: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
value: "mbappe", |
|
|
|
value: "mbappe", |
|
|
@ -118,33 +118,33 @@ Output |
|
|
|
indexDiff: 0, |
|
|
|
indexDiff: 0, |
|
|
|
status: "equal", |
|
|
|
status: "equal", |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
- { |
|
|
|
value: "mendes", |
|
|
|
- value: "mendes", |
|
|
|
prevIndex: 1, |
|
|
|
- prevIndex: 1, |
|
|
|
newIndex: null, |
|
|
|
- newIndex: null, |
|
|
|
indexDiff: null, |
|
|
|
- indexDiff: null, |
|
|
|
status: "deleted", |
|
|
|
- status: "deleted", |
|
|
|
}, |
|
|
|
- }, |
|
|
|
{ |
|
|
|
- { |
|
|
|
value: "verratti", |
|
|
|
- value: "verratti", |
|
|
|
prevIndex: 2, |
|
|
|
- prevIndex: 2, |
|
|
|
newIndex: null, |
|
|
|
- newIndex: null, |
|
|
|
indexDiff: null, |
|
|
|
- indexDiff: null, |
|
|
|
status: "deleted", |
|
|
|
- status: "deleted", |
|
|
|
}, |
|
|
|
- }, |
|
|
|
{ |
|
|
|
+ { |
|
|
|
value: "messi", |
|
|
|
+ value: "messi", |
|
|
|
prevIndex: null, |
|
|
|
+ prevIndex: null, |
|
|
|
newIndex: 1, |
|
|
|
+ newIndex: 1, |
|
|
|
indexDiff: null, |
|
|
|
+ indexDiff: null, |
|
|
|
status: "added", |
|
|
|
+ status: "added", |
|
|
|
}, |
|
|
|
+ }, |
|
|
|
{ |
|
|
|
+ { |
|
|
|
value: "ruiz", |
|
|
|
+ value: "ruiz", |
|
|
|
prevIndex: 3, |
|
|
|
+ prevIndex: 3, |
|
|
|
newIndex: 2, |
|
|
|
+ newIndex: 2, |
|
|
|
indexDiff: -1, |
|
|
|
+ indexDiff: -1, |
|
|
|
status: "moved", |
|
|
|
+ status: "moved", |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
} |
|
|
|
} |
|
|
|