match-deep
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

match-deep

A deep matching library.

matchDeep(value, source, options?)
import matchDeep from 'match-deep';

const matches = matchDeep(
  {
    a: 1,
    b: 2
  },
  {
    c: 1,
    d: 2
  },
  {
    shortCircuit: true
  }
);

console.log(matches);
/*

{
  result: false,
  message: 'Number `1` and value `undefined` not equal for "c" ' +
    'Number `2` and value `undefined` not equal for "d"',
  errors: [
    {
      message: 'Number `1` and value `undefined` not equal',
      keyPath: [Array]
    },
    {
      message: 'Number `2` and value `undefined` not equal',
      keyPath: [Array]
    }
  ]
}

*/

Options

Defaults:

{
  shortCircuit: false,
  skipKeys: [],
  serializedRegex: false
}

shortCircuit (boolean) - true will stop on the first match error and report only that one, which can help performance.

skipKeys (string[]) - an array of key names under which to not do comparisons - all keys are considered by default.

serializedRegex (boolean) - true will interpret { $regex: { source: 'a.*b', flags: 'i' } } as if it were /a.*b/i. This allows for serialization of regular expressions over JSON. Also supports optional flags as in { $regex: { source: 'a.*b' } }, and just a source string as in { $regex: 'a.*b' }.

Readme

Keywords

none

Package Sidebar

Install

npm i match-deep

Weekly Downloads

42

Version

1.0.3

License

MIT

Unpacked Size

23.1 kB

Total Files

5

Last publish

Collaborators

  • andersdjohnson