mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import * as jsonpatch from 'fast-json-patch'
|
|
|
|
var myobj:{
|
|
firstName:string,
|
|
contactDetails: {
|
|
phoneNumbers:string[]
|
|
}
|
|
} = { firstName:"Albert", contactDetails: { phoneNumbers: [ ] } };
|
|
var patches = [
|
|
{op:"replace", path:"/firstName", value:"Joachim" },
|
|
{op:"add", path:"/lastName", value:"Wester" },
|
|
{op:"add", path:"/contactDetails/phoneNumbers/0", value:{ number:"555-123" } }
|
|
];
|
|
jsonpatch.apply( myobj, patches );
|
|
|
|
var myobj2 = { firstName:"Joachim", lastName:"Wester", contactDetails: { phoneNumbers: [ { number:"555-123" }] } };
|
|
var observer = jsonpatch.observe( myobj2 );
|
|
myobj2.firstName = "Albert";
|
|
myobj2.contactDetails.phoneNumbers[0].number = "123";
|
|
myobj2.contactDetails.phoneNumbers.push({number:"456"});
|
|
var patches2 = jsonpatch.generate(observer);
|
|
|
|
var objA = {user: {firstName: "Albert", lastName: "Einstein"}};
|
|
var objB = {user: {firstName: "Albert", lastName: "Collins"}};
|
|
var diff = jsonpatch.compare(objA, objB);
|
|
|
|
var obj = {user: {firstName: "Albert"}};
|
|
var patches3 = [{op: "replace", path: "/user/firstName", value: "Albert"}, {op: "replace", path: "/user/lastName", value: "Einstein"}];
|
|
var errors = jsonpatch.validate(patches, obj);
|
|
if (errors.length == 0) {
|
|
//there are no errors!
|
|
}
|
|
else {
|
|
for (var i=0; i < errors.length; i++) {
|
|
if (!errors[i]) {
|
|
console.log("Valid patch at index", i, patches[i]);
|
|
}
|
|
else {
|
|
console.error("Invalid patch at index", i, errors[i], patches[i]);
|
|
}
|
|
}
|
|
}
|