hexo/node_modules/fast-equals/CHANGELOG.md

5.2 KiB

fast-equals CHANGELOG

3.0.3

  • Fix #77 - better circular object validation

3.0.2

  • Fix #73 - support comparison of primitive wrappers
  • #76 - improve speed and accuracy of RegExp comparison in modern environments

3.0.1

  • Fix #71 - use generic types for better type flow-through

3.0.0

Breaking changes

When creating a custom equality comparator via createCustomEqual, the equality method has an expanded contract:

// Before
type EqualityComparator = (objectA: any, objectB: any, meta: any) => boolean;

// After
type InternalEqualityComparator = (
  objectA: any,
  objectB: any,
  indexOrKeyA: any,
  indexOrKeyB: any,
  parentA: any,
  parentB: any,
  meta: any,
) => boolean;

If you have a custom equality comparator, you can ignore the differences by just passing additional undefined parameters, or you can use the parameters to further improve / clarify the logic.

  • Add #57 - support additional metadata for custom equality comparators

2.0.4

  • Fix #58 - duplicate entries in Map / Set can create false equality success
  • #60 - Add documentation for key equality of Map being a part of deepEqual

2.0.3

  • Fix #50 - copy-pasta in cacheable check

2.0.2

  • Optimize iterables comparisons to not double-iterate
  • Optimize loop-based comparisons for speed
  • Improve cache handling in circular handlers
  • Improve stability of memory by reducing variable instantiation

2.0.1

  • Fix #41 - prevent .rpt2_cache directory from being published for better CI environment support (thanks @herberttn)

2.0.0

Breaking changes

  • There are longer fast-equals/es, fast-equals/lib, fast-equals/mjs locations
    • Instead, there are 3 builds in dist for different consumption types:
      • fast-equals.js (UMD / browser)
      • fast-equals.esm.js (ESM / module)
      • fast-equals.cjs.js (CommonJS / main)
  • There is no default export anymore, only the previously-existing named exports
    • To get all into a namespace, use import * as fe from 'fast-equals

Updates

  • Rewritten completely in TypeScript
  • Improve speed of Map / Set comparisons
  • Improve speed of React element comparisons

Fixes

  • Consider pure objects (Object.create(null)) to be plain objects
  • Fix typings for createCustomEqual

1.6.3

  • Check the size of the iterable before converting to arrays

1.6.2

  • Fix #23 - false positives for map
  • Replace uglify with terser
  • Use rollup to build all the distributables (main, module, and browser)
    • Maintain lib and es transpilations in case consumers were deep-linking

1.6.1

  • Upgrade to babel@7
  • Add "sideEffects": false to package.json for better tree-shaking in webpack

1.6.0

1.5.3

  • Fix Map / Set comparison to not require order to match to be equal

1.5.2

  • Improve speed of object comparison through custom hasKey method

1.5.1

  • Fix lack of support for unicode and sticky RegExp flag checks

1.5.0

1.4.1

  • Fix issue where lastIndex was not being tested on RegExp objects

1.4.0

  • Add support for comparing promise-like objects (strict equality only)

1.3.1

  • Make react comparison more accurate, and a touch faster

1.3.0

  • Add support for deep-equal comparisons between react elements
  • Add comparison with react-fast-compare
  • Use rollup for dist file builds

1.2.1

  • Fix errors from TypeScript typings in strict mode (thanks @HitoriSensei)

1.2.0

1.1.0

1.0.6

  • Support invalid date equality via isSameValueZero

1.0.5

  • Replace isStrictlyEqual with isSameValueZero to ensure that shallowEqual accounts for NaN equality

1.0.4

  • Only check values when comparing Set objects (improves performance of Set check by ~12%)

1.0.3

  • Make Map and Set comparisons more explicit

1.0.2

  • Fix symmetrical comparison of iterables
  • Reduce footprint

1.0.1

  • Prevent babel transpilation of typeof into helper for faster runtime

1.0.0

  • Initial release