
Security News
Crates.io Implements Trusted Publishing Support
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
tiny-merge-patch
Advanced tools
An implementation of the JSON Merge Patch RFC 7396: a standard format used to describe modifications to JSON documents.
This library complies with the functional programming style: it does not mutate the original target, but recycles what it can.
tiny-merge-patch
passes all RFC 7396 tests.
Install the current version (and save it as a dependency):
npm install tiny-merge-patch --save
// Fetch `apply` from the module.
const mergePatch = require('tiny-merge-patch').apply;
// `apply` is also the default export.
import mergePatch from 'https://unpkg.com/tiny-merge-patch/esm/index.js'
// Original document / object.
const doc = {
a: 'b',
c: { d: 'e', f: 'g' },
h: { i: 0 }
};
// JSON merge patch to apply.
const patch = {
a: 'z',
c: { f: null } // null marks deletions.
};
// Apply the patch.
const patchedDoc = mergePatch(doc, patch);
// tiny-merge-patch complies with the RFC specification.
assert.deepEqual(patchedDoc, {
a: 'z',
c: { d: 'e' },
h: { i: 0 },
});
// Additionally, it does not mutate the original document...
assert(patchedDoc !== doc);
// ...nor its content...
assert(patchedDoc.c !== doc.c);
// ...but recycles what it can.
assert(patchedDoc.h === doc.h);
json-merge-patch
(from which this library is forked)
All are in-place.
To avoid mutations of the original object, one can deep-clone beforehand, but it can be expensive.
At the contrary, tiny-merge-patch
does not alter any of its arguments—but
recycles what it can.
Recycling also allows efficient strict identity-based memoization
(used by React's PureComponent for example).
All of the above libraries also embed additional functionalities, such as patch generation from two objects or merge of patches.
tiny-merge-patch
only focuses on the IETF standard and on patch applications.
(None of the above libraries are particularly big.
Still, tiny-merge-patch
is smaller if you only need to apply patches.
It is also worth mentioning that unlike
JSON patches, there is no way to
implement merge of merge patches that reliably preserves deletion.)
JSON merge patch implementation for Immutable.js.
0.1.2 (2017-10-09)
<a name="0.1.1"></a>
FAQs
JSON Merge Patch (RFC 7396) Implementation
We found that tiny-merge-patch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.