Releases: AsyncBanana/microdiff
v1.4.0 - Bug fixes and consistency improvements
What's Changed
- add support for treating NaN values as equivalent by @brainthinks in #24, closes #23
- fixed diffs for properties changed from arrays to objects, closes #38
New Contributors
- @brainthinks made their first contribution in #24
Full Changelog: v1.3.2...v1.4.0
TypeScript improvements, bugfixes, and testing improvements
What's Changed
- Type exports for external references. by @garrett-wombat in #34
- fix error if input object was created by a null prototype by @AnnatarHe in #35
- Updated dependencies
- Updated tests to check for null object prototypes and to use Node's test runner
New Contributors
- @garrett-wombat made their first contribution in #34
- @AnnatarHe made their first contribution in #35
Full Changelog: v1.3.1...v1.3.2
Optimizations, TypeScript improvements, and README updates
What's Changed
- Replace ternary operator on cycles checking with short-circuit OR operator by @micalevisk in #22
- Improve typing of Difference interface by @Schrubitteflau in #33
- Various README updates, added new files for information on the project
New Contributors
- @micalevisk made their first contribution in #22
- @Schrubitteflau made their first contribution in #33
Full Changelog: v1.3.0...v1.3.1
Added old value to CHANGE and REMOVE (#17) + Performance optimization (#14)
What's Changed
- Bring checking isArray out of the loop by @danialdezfouli in #14
- Add old value to changing difference by @denis-bel in #17
New Contributors
- @danialdezfouli made their first contribution in #14
- @denis-bel made their first contribution in #17
Full Changelog: v1.2.0...v1.3.0
Improved performance; Added cycles option; Added number paths for arrays
This release adds a few things:
- Performance has been improved somewhat through a few different strategies (credits to @brecert and their fork for some ideas)
- An option has been added to disable cycle checking to optimize if you know there are no cycles (#9):
diff(obj1,obj2,{cyclesFix: false})
- Now, array paths will have numbers instead of strings (#12).
Fixed array nesting bug
This release fixes an array nesting bug caused by v1.1.2 that caused problems if you nested an object inside an array inside an object (#11).
Fixed cyclical references (#6)
This release fixes cyclical references causing Microdiff to infinitely recurse (#6). This also adds better support for loading the ESM version in package.json. Thanks for 600 stars!
Fixed replacing object with null
This release is just a small bug fix that fixes #7 and allows replacing an object with null or a primitive value.
Added support for CommonJS
This release adds support for CommonJS usage in Node. Current ESM usage should be unaffected, but people using CommonJS should now be able to require()
Microdiff.
Added support for additional non-primitive types
This release uses prototype checking, number coercion, and string coercion to support diffing non-primitive types. The new design also makes it much easier to add support for new types without a significant increase in size, as this is designed in a more modular way than earlier designs like v1.0.1's dates. In fact, Dates now use this design.
new String()
is now supportednew Number()
is now supportednew RegExp()
and Regex literals are now supported
This release only adds 113 bytes of Terser compressed JavaScript (even less with Gzip or Brotli) and does not affect performance.
Thanks for all of your support!