DefinitelyTyped/types/json-patch/index.d.ts
2017-08-20 15:37:53 -07:00

47 lines
1.3 KiB
TypeScript

// Type definitions for json-patch
// Project: https://github.com/bruth/jsonpatch-js
// Definitions by: vvakame <https://github.com/vvakame>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
declare namespace jsonpatch {
type OpPatch = AddPatch | RemovePatch | ReplacePatch | MovePatch | CopyPatch | TestPatch;
interface Patch {
path: string;
}
interface AddPatch extends Patch {
op: 'add';
value: any;
}
interface RemovePatch extends Patch {
op: 'remove';
}
interface ReplacePatch extends Patch {
op: 'replace';
value: any;
}
interface MovePatch extends Patch {
op: 'move';
from: string;
}
interface CopyPatch extends Patch {
op: 'copy';
from: string;
}
interface TestPatch extends Patch {
op: 'test';
value: any;
}
function apply(document: any, patches: OpPatch[]): any;
function compile(patches: OpPatch[]): (document: any) => any;
class JSONPatchError extends Error { }
class InvalidPointerError extends Error { }
class InvalidPatchError extends JSONPatchError { }
class PatchConflictError extends JSONPatchError { }
class PatchTestFailed extends Error { }
}
export = jsonpatch;
export as namespace jsonpatch;