rfc6902
- Version 5.1.2
- Published
- 92.9 kB
- No dependencies
- MIT license
Install
npm i rfc6902
yarn add rfc6902
pnpm add rfc6902
Overview
Complete implementation of RFC6902 (patch and diff)
Index
Functions
Classes
Interfaces
Type Aliases
Functions
function applyPatch
applyPatch: ( object: any, patch: Operation[]) => ( | import('./patch').MissingError | import('./patch').TestError | import('./patch').InvalidOperationError | null)[];
Apply a 'application/json-patch+json'-type patch to an object.
patch
*must* be an array of operations.> Operation objects MUST have exactly one "op" member, whose value > indicates the operation to perform. Its value MUST be one of "add", > "remove", "replace", "move", "copy", or "test"; other values are > errors.
This method mutates the target object in-place.
Returns
list of results, one for each operation:
null
indicated success, otherwise, the result will be an instance of one of the Error classes: MissingError, InvalidOperationError, or TestError.
function createPatch
createPatch: (input: any, output: any, diff?: VoidableDiff) => Operation[];
Produce a 'application/json-patch+json'-type patch to get from one object to another.
This does not alter
input
oroutput
unless they have a property getter with side-effects (which is not a good idea anyway).diff
is called on each pair of comparable non-primitive nodes in theinput
/output
object trees, producing nested patches. Returnundefined
to fall back to default behaviour.Returns list of operations to perform on
input
to produceoutput
.
function createTests
createTests: (input: any, patch: Operation[]) => TestOperation[];
Produce an 'application/json-patch+json'-type list of tests, to verify that existing values in an object are identical to the those captured at some checkpoint (whenever this function is called).
This does not alter
input
oroutput
unless they have a property getter with side-effects (which is not a good idea anyway).Returns list of test operations.
Classes
class Pointer
class Pointer {}
JSON Pointer representation
constructor
constructor(tokens?: string[]);
property tokens
tokens: string[];
method add
add: (token: string) => Pointer;
token
should be a String. It'll be coerced to one anyway.immutable (shallowly)
method evaluate
evaluate: (object: any) => PointerEvaluation;
Returns an object with 'parent', 'key', and 'value' properties. In the special case that this Pointer's path == "", this object will be {parent: null, key: '', value: object}. Otherwise, parent and key will have the property such that parent[key] == value.
method fromJSON
static fromJSON: (path: string) => Pointer;
path
*must* be a properly escaped string.
method get
get: (object: any) => any;
method push
push: (token: string) => void;
method set
set: (object: any, value: any) => void;
method toString
toString: () => string;
Interfaces
interface TestOperation
interface TestOperation {}
Type Aliases
Package Files (3)
Dependencies (0)
No dependencies.
Dev Dependencies (8)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/rfc6902
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/rfc6902)
- HTML<a href="https://www.jsdocs.io/package/rfc6902"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 3140 ms. - Missing or incorrect documentation? Open an issue for this package.