• Version 4.0.2
  • Published
  • 96.2 kB
  • No dependencies
  • MIT license


npm i rfc6902
yarn add rfc6902
pnpm add rfc6902


Complete implementation of RFC6902 (patch and diff)



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.


    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.


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.


              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
              • HTML
                <a href="https://www.jsdocs.io/package/rfc6902"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>