Releases: cujojs/jiff
Releases · cujojs/jiff
0.7.3: Fix array-of-array diff
- Make diffing arrays of arrays generate smaller patches by default.
- Previously, diffing arrays of arrays could generate larger than expected patches because the array identity was used as the
hash
function. It now usesJSON.stringify
by default, as is done for arrays of objects. Thehash
can still be overridden when callingjiff.diff
--this just makes the default more sane.
- Previously, diffing arrays of arrays could generate larger than expected patches because the array identity was used as the
0.7.2: Fix diff changing array to object
- Fix for case where a property value is changed from an array to an object or vice versa. Patch will now correctly contain a
replace
operation.
0.7.1: Add invertible option
- Add
invertible
option tojiff.diff
to suppress extratest
ops. This makes for smaller patches, but means patches cannot be inverted usingjiff.inverse
0.7.0: improve jiff.clone()
- Improve
jiff.clone
performance 3x or more - Removed
jiff.clone
custom Date reviving- This may be a breaking change if you relied on this behavior. However, we feel this hidden behavior caused more issues than it helped. Date deserialization is now the responsibility of the caller who parsed the JSON string from which the original object/array/etc. (ie, the one passed to
jiff.clone
) was created.
- This may be a breaking change if you relied on this behavior. However, we feel this hidden behavior caused more issues than it helped. Date deserialization is now the responsibility of the caller who parsed the JSON string from which the original object/array/etc. (ie, the one passed to
0.6.0: Experimental patch context
- Experimental support for patch context. (it's opt-in, and not part of JSON Patch rfc6902). See the docs for
jiff.diff
andjiff.patch
. - Performance improvements to
jiff.diff
.
0.5.6: More perf
- Optimize JSON Pointer decoding/parsing for across-the-board perf improvements.
- Switch to loops instead of
Array.prototype.*
in several perf-critical spots. - Make
copy
operations throwInvalidPatchOperationError
for non-existentfrom
paths.
0.5.5
0.5.4
- Fixes for commutation and rebasing
0.5.3
- Experimental patch rebasing.
0.5.2
- Fix version numbers