mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
Merge pull request #4178 from borisyankov/add-json-patch
add json-patch
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
/// <reference path="./json-patch.d.ts" />
|
||||
|
||||
import jp = require("json-patch");
|
||||
|
||||
// Add property, result: {foo: 'bar'}
|
||||
jsonpatch.apply({}, [{ op: 'add', path: '/foo', value: 'bar' }]);
|
||||
// Add array element, result: {foo: [1, 2, 3]}
|
||||
jsonpatch.apply({ foo: [1, 3] }, [{ op: 'add', path: '/foo/1', value: 2 }]);
|
||||
// Complex, result: {foo: [{bar: 'baz'}]}
|
||||
jsonpatch.apply({ foo: [{}] }, [{ op: 'add', path: '/foo/0/bar', value: 'baz' }]);
|
||||
|
||||
// Remove property, result: {}
|
||||
jsonpatch.apply({ foo: 'bar' }, [{ op: 'remove', path: '/foo' }]);
|
||||
// Remove array element, result: {foo: [1, 3]}
|
||||
jsonpatch.apply({ foo: [1, 2, 3] }, [{ op: 'remove', path: '/foo/1' }]);
|
||||
// Complex, result: {foo: [{}]}
|
||||
jsonpatch.apply({ foo: [{ bar: 'baz' }] }, [{ op: 'remove', path: '/foo/0/bar' }]);
|
||||
|
||||
// Replace property, result: {foo: 1}
|
||||
jsonpatch.apply({ foo: 'bar' }, [{ op: 'replace', path: '/foo', value: 1 }]);
|
||||
// Repalce array element, result: {foo: [1, 4, 3]}
|
||||
jsonpatch.apply({ foo: [1, 2, 3] }, [{ op: 'replace', path: '/foo/1', value: 4 }]);
|
||||
// Complex, result: {foo: [{bar: 1}]}
|
||||
jsonpatch.apply({ foo: [{ bar: 'baz' }] }, [{ op: 'replace', path: '/foo/0/bar', value: 1 }]);
|
||||
|
||||
// Move property, result {bar: [1, 2, 3]}
|
||||
jsonpatch.apply({ foo: [1, 2, 3] }, [{ op: 'move', from: '/foo', path: '/bar' }]);
|
||||
// Copy property, result {foo: [1, 2, 3], bar: 2}
|
||||
jsonpatch.apply({ foo: [1, 2, 3] }, [{ op: 'copy', from: '/foo/1', path: '/bar' }]);
|
||||
// Test equality of property to value, result: true
|
||||
jsonpatch.apply({ foo: 'bar' }, [{ op: 'test', path: '/foo', value: 'bar' }]);
|
||||
|
||||
jsonpatch.compile([{ op: 'test', path: '/foo', value: 'bar' }])({ foo: 'bar' });
|
||||
|
||||
jp.apply({}, [{ op: 'add', path: '/foo', value: 'bar' }]);
|
||||
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
// Type definitions for json-patch
|
||||
// Project: https://github.com/bruth/jsonpatch-js
|
||||
// Definitions by: vvakame <https://github.com/vvakame/>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
declare module jsonpatch {
|
||||
type OpPatch = AddPath | RemovePath | ReplacePath | MovePath | CopyPath | TestPath;
|
||||
interface Patch {
|
||||
op: string;
|
||||
}
|
||||
interface AddPath extends Patch {
|
||||
path: string;
|
||||
value: any;
|
||||
}
|
||||
interface RemovePath extends Patch {
|
||||
path: string;
|
||||
}
|
||||
interface ReplacePath extends Patch {
|
||||
path: string;
|
||||
value: any;
|
||||
}
|
||||
interface MovePath extends Patch {
|
||||
from: string;
|
||||
path: string;
|
||||
}
|
||||
interface CopyPath extends Patch {
|
||||
from: string;
|
||||
path: string;
|
||||
}
|
||||
interface TestPath extends Patch {
|
||||
path: string;
|
||||
value: any;
|
||||
}
|
||||
|
||||
function apply(document: any, patches: OpPatch[]): any;
|
||||
function compile(patches: OpPatch[]): (document: any) => any;
|
||||
}
|
||||
|
||||
declare module "json-patch" {
|
||||
export = jsonpatch;
|
||||
}
|
||||
Reference in New Issue
Block a user