rfc6902

  • Version 4.0.2
  • Published
  • 96.2 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

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 or output 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 the input/output object trees, producing nested patches. Return undefined to fall back to default behaviour.

    Returns list of operations to perform on input to produce output.

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 or output unless they have a property getter with side-effects (which is not a good idea anyway).

    Returns list of test operations.

Interfaces

interface TestOperation

interface TestOperation {}

    property op

    op: 'test';

      property path

      path: string;

        property value

        value: any;

          Type Aliases

          type Operation

          type Operation =
          | AddOperation
          | RemoveOperation
          | ReplaceOperation
          | MoveOperation
          | CopyOperation
          | TestOperation;

            type Patch

            type Patch = Operation[];

              Package Files (2)

              Dependencies (0)

              No dependencies.

              Dev Dependencies (8)

              Peer Dependencies (0)

              No peer dependencies.

              Badge

              To add a badge like this onejsDocs.io badgeto 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>