source: trip-planner-front/node_modules/fast-deep-equal/README.md@ fa375fe

Last change on this file since fa375fe was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 3.2 KB
Line 
1# fast-deep-equal
2The fastest deep equal with ES6 Map, Set and Typed arrays support.
3
4[![Build Status](https://travis-ci.org/epoberezkin/fast-deep-equal.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-deep-equal)
5[![npm](https://img.shields.io/npm/v/fast-deep-equal.svg)](https://www.npmjs.com/package/fast-deep-equal)
6[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-deep-equal/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-deep-equal?branch=master)
7
8
9## Install
10
11```bash
12npm install fast-deep-equal
13```
14
15
16## Features
17
18- ES5 compatible
19- works in node.js (8+) and browsers (IE9+)
20- checks equality of Date and RegExp objects by value.
21
22ES6 equal (`require('fast-deep-equal/es6')`) also supports:
23- Maps
24- Sets
25- Typed arrays
26
27
28## Usage
29
30```javascript
31var equal = require('fast-deep-equal');
32console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true
33```
34
35To support ES6 Maps, Sets and Typed arrays equality use:
36
37```javascript
38var equal = require('fast-deep-equal/es6');
39console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true
40```
41
42To use with React (avoiding the traversal of React elements' _owner
43property that contains circular references and is not needed when
44comparing the elements - borrowed from [react-fast-compare](https://github.com/FormidableLabs/react-fast-compare)):
45
46```javascript
47var equal = require('fast-deep-equal/react');
48var equal = require('fast-deep-equal/es6/react');
49```
50
51
52## Performance benchmark
53
54Node.js v12.6.0:
55
56```
57fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled)
58fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled)
59fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled)
60nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled)
61shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled)
62underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled)
63lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled)
64deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled)
65deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled)
66ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled)
67util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled)
68assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled)
69
70The fastest is fast-deep-equal
71```
72
73To run benchmark (requires node.js 6+):
74
75```bash
76npm run benchmark
77```
78
79__Please note__: this benchmark runs against the available test cases. To choose the most performant library for your application, it is recommended to benchmark against your data and to NOT expect this benchmark to reflect the performance difference in your application.
80
81
82## Enterprise support
83
84fast-deep-equal package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-deep-equal?utm_source=npm-fast-deep-equal&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers.
85
86
87## Security contact
88
89To report a security vulnerability, please use the
90[Tidelift security contact](https://tidelift.com/security).
91Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues.
92
93
94## License
95
96[MIT](https://github.com/epoberezkin/fast-deep-equal/blob/master/LICENSE)
Note: See TracBrowser for help on using the repository browser.