Skip to content

applyPatch() validator index is not incrementing #300

@beam-bence

Description

@beam-bence

Using applyPatch, the index parameter of the custom validator function stays 0 with every call:

       applyPatch(
          json,
          operations,
          (change, index, tree, existingPath) => {
            const parentPath = change.path
              .split('/')
              .slice(0, change.path.split('/').length - 1)
              .join('/');
            if (!jsonpointer.exists(tree, parentPath)) {
              const extendedTree = {...tree};
              jsonpointer.set(extendedTree, parentPath, {});
              const fixChanges = compare(tree, extendedTree);

              //TODO fix bug index is always 0
              fixedChanges.splice(index, 0, ...fixChanges);
              throw new JsonPatchError(
                'Cannot perform operation at the desired path',
                'OPERATION_PATH_UNRESOLVABLE',
                index,
                change,
                tree
              );
            }
          },
          false //mutateDocument
        ).newDocument;

In the source, constant zero is passed instead of index:
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions