mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-01-29 21:17:34 +00:00
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import * as jsonpatch from 'fast-json-patch';
|
|
|
|
var myobj: {
|
|
firstName: string,
|
|
contactDetails: {
|
|
phoneNumbers: string[]
|
|
}
|
|
} = { firstName: "Albert", contactDetails: { phoneNumbers: [] } };
|
|
var patches: jsonpatch.Patch[] = [
|
|
{ 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]);
|
|
}
|
|
}
|
|
}
|