source: node_modules/fast-json-patch/commonjs/core.d.ts

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 5.0 KB
Line 
1import { PatchError, _deepClone } from './helpers.js';
2export declare const JsonPatchError: typeof PatchError;
3export declare const deepClone: typeof _deepClone;
4export declare type Operation = AddOperation<any> | RemoveOperation | ReplaceOperation<any> | MoveOperation | CopyOperation | TestOperation<any> | GetOperation<any>;
5export interface Validator<T> {
6 (operation: Operation, index: number, document: T, existingPathFragment: string): void;
7}
8export interface OperationResult<T> {
9 removed?: any;
10 test?: boolean;
11 newDocument: T;
12}
13export interface BaseOperation {
14 path: string;
15}
16export interface AddOperation<T> extends BaseOperation {
17 op: 'add';
18 value: T;
19}
20export interface RemoveOperation extends BaseOperation {
21 op: 'remove';
22}
23export interface ReplaceOperation<T> extends BaseOperation {
24 op: 'replace';
25 value: T;
26}
27export interface MoveOperation extends BaseOperation {
28 op: 'move';
29 from: string;
30}
31export interface CopyOperation extends BaseOperation {
32 op: 'copy';
33 from: string;
34}
35export interface TestOperation<T> extends BaseOperation {
36 op: 'test';
37 value: T;
38}
39export interface GetOperation<T> extends BaseOperation {
40 op: '_get';
41 value: T;
42}
43export interface PatchResult<T> extends Array<OperationResult<T>> {
44 newDocument: T;
45}
46/**
47 * Retrieves a value from a JSON document by a JSON pointer.
48 * Returns the value.
49 *
50 * @param document The document to get the value from
51 * @param pointer an escaped JSON pointer
52 * @return The retrieved value
53 */
54export declare function getValueByPointer(document: any, pointer: string): any;
55/**
56 * Apply a single JSON Patch Operation on a JSON document.
57 * Returns the {newDocument, result} of the operation.
58 * It modifies the `document` and `operation` objects - it gets the values by reference.
59 * If you would like to avoid touching your values, clone them:
60 * `jsonpatch.applyOperation(document, jsonpatch._deepClone(operation))`.
61 *
62 * @param document The document to patch
63 * @param operation The operation to apply
64 * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.
65 * @param mutateDocument Whether to mutate the original document or clone it before applying
66 * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
67 * @return `{newDocument, result}` after the operation
68 */
69export declare function applyOperation<T>(document: T, operation: Operation, validateOperation?: boolean | Validator<T>, mutateDocument?: boolean, banPrototypeModifications?: boolean, index?: number): OperationResult<T>;
70/**
71 * Apply a full JSON Patch array on a JSON document.
72 * Returns the {newDocument, result} of the patch.
73 * It modifies the `document` object and `patch` - it gets the values by reference.
74 * If you would like to avoid touching your values, clone them:
75 * `jsonpatch.applyPatch(document, jsonpatch._deepClone(patch))`.
76 *
77 * @param document The document to patch
78 * @param patch The patch to apply
79 * @param validateOperation `false` is without validation, `true` to use default jsonpatch's validation, or you can pass a `validateOperation` callback to be used for validation.
80 * @param mutateDocument Whether to mutate the original document or clone it before applying
81 * @param banPrototypeModifications Whether to ban modifications to `__proto__`, defaults to `true`.
82 * @return An array of `{newDocument, result}` after the patch
83 */
84export declare function applyPatch<T>(document: T, patch: ReadonlyArray<Operation>, validateOperation?: boolean | Validator<T>, mutateDocument?: boolean, banPrototypeModifications?: boolean): PatchResult<T>;
85/**
86 * Apply a single JSON Patch Operation on a JSON document.
87 * Returns the updated document.
88 * Suitable as a reducer.
89 *
90 * @param document The document to patch
91 * @param operation The operation to apply
92 * @return The updated document
93 */
94export declare function applyReducer<T>(document: T, operation: Operation, index: number): T;
95/**
96 * Validates a single operation. Called from `jsonpatch.validate`. Throws `JsonPatchError` in case of an error.
97 * @param {object} operation - operation object (patch)
98 * @param {number} index - index of operation in the sequence
99 * @param {object} [document] - object where the operation is supposed to be applied
100 * @param {string} [existingPathFragment] - comes along with `document`
101 */
102export declare function validator(operation: Operation, index: number, document?: any, existingPathFragment?: string): void;
103/**
104 * Validates a sequence of operations. If `document` parameter is provided, the sequence is additionally validated against the object document.
105 * If error is encountered, returns a JsonPatchError object
106 * @param sequence
107 * @param document
108 * @returns {JsonPatchError|undefined}
109 */
110export declare function validate<T>(sequence: ReadonlyArray<Operation>, document?: T, externalValidator?: Validator<T>): PatchError;
111export declare function _areEquals(a: any, b: any): boolean;
Note: See TracBrowser for help on using the repository browser.