diff options
author | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2018-09-20 02:56:13 +0200 |
commit | bbff7403fbf46f9ad92240ac213df8d30ef31b64 (patch) | |
tree | c58400ec5124da1c7d56b01aea83309f80a56c3b /node_modules/fast-deep-equal | |
parent | 003fb34971cf63466184351b4db5f7c67df4f444 (diff) |
update packages
Diffstat (limited to 'node_modules/fast-deep-equal')
-rw-r--r-- | node_modules/fast-deep-equal/.eslintrc.yml | 25 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/.npmignore | 60 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/.travis.yml | 8 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/README.md | 19 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/benchmark/.eslintrc.yml | 5 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/benchmark/index.js | 56 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/index.js | 54 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/package.json | 26 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/spec/.eslintrc.yml | 5 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/spec/index.spec.js | 18 | ||||
-rw-r--r-- | node_modules/fast-deep-equal/spec/tests.js | 320 |
11 files changed, 61 insertions, 535 deletions
diff --git a/node_modules/fast-deep-equal/.eslintrc.yml b/node_modules/fast-deep-equal/.eslintrc.yml deleted file mode 100644 index 14ab1fb97..000000000 --- a/node_modules/fast-deep-equal/.eslintrc.yml +++ /dev/null @@ -1,25 +0,0 @@ -env: - node: true -extends: 'eslint:recommended' -rules: - indent: [ 2, 2, { SwitchCase: 1 } ] - no-trailing-spaces: 2 - quotes: [ 2, single, avoid-escape ] - linebreak-style: [ 2, unix ] - semi: [ 2, always ] - valid-jsdoc: [ 2, { requireReturn: false } ] - no-invalid-this: 2 - no-unused-vars: [ 2, { args: none } ] - no-console: [ 2, { allow: [ warn, error ] } ] - block-scoped-var: 2 - curly: [ 2, multi-or-nest, consistent ] - dot-location: [ 2, property ] - dot-notation: 2 - no-else-return: 2 - no-eq-null: 2 - no-fallthrough: 2 - no-return-assign: 2 - strict: [ 2, global ] - no-use-before-define: [ 2, nofunc ] - callback-return: 2 - no-path-concat: 2 diff --git a/node_modules/fast-deep-equal/.npmignore b/node_modules/fast-deep-equal/.npmignore deleted file mode 100644 index d09355793..000000000 --- a/node_modules/fast-deep-equal/.npmignore +++ /dev/null @@ -1,60 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -typings/ - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env - -.DS_Store diff --git a/node_modules/fast-deep-equal/.travis.yml b/node_modules/fast-deep-equal/.travis.yml deleted file mode 100644 index 7ddce74b8..000000000 --- a/node_modules/fast-deep-equal/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "4" - - "6" - - "7" - - "8" -after_script: - - coveralls < coverage/lcov.info diff --git a/node_modules/fast-deep-equal/README.md b/node_modules/fast-deep-equal/README.md index ee83edd45..326bb2a58 100644 --- a/node_modules/fast-deep-equal/README.md +++ b/node_modules/fast-deep-equal/README.md @@ -30,15 +30,18 @@ console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true ## Performance benchmark +Node.js v9.11.1: + ``` -fast-deep-equal x 82,915 ops/sec ±0.63% (89 runs sampled) -nano-equal x 50,506 ops/sec ±2.23% (86 runs sampled) -shallow-equal-fuzzy x 14,873 ops/sec ±3.19% (83 runs sampled) -underscore.isEqual x 16,055 ops/sec ±2.29% (85 runs sampled) -lodash.isEqual x 10,740 ops/sec ±1.04% (89 runs sampled) -deep-equal x 12,276 ops/sec ±2.44% (84 runs sampled) -deep-eql x 10,565 ops/sec ±0.89% (90 runs sampled) -assert.deepStrictEqual x 965 ops/sec ±2.99% (81 runs sampled) +fast-deep-equal x 226,960 ops/sec ±1.55% (86 runs sampled) +nano-equal x 218,210 ops/sec ±0.79% (89 runs sampled) +shallow-equal-fuzzy x 206,762 ops/sec ±0.84% (88 runs sampled) +underscore.isEqual x 128,668 ops/sec ±0.75% (91 runs sampled) +lodash.isEqual x 44,895 ops/sec ±0.67% (85 runs sampled) +deep-equal x 51,616 ops/sec ±0.96% (90 runs sampled) +deep-eql x 28,218 ops/sec ±0.42% (85 runs sampled) +assert.deepStrictEqual x 1,777 ops/sec ±1.05% (86 runs sampled) +ramda.equals x 13,466 ops/sec ±0.82% (86 runs sampled) The fastest is fast-deep-equal ``` diff --git a/node_modules/fast-deep-equal/benchmark/.eslintrc.yml b/node_modules/fast-deep-equal/benchmark/.eslintrc.yml deleted file mode 100644 index 32a081d84..000000000 --- a/node_modules/fast-deep-equal/benchmark/.eslintrc.yml +++ /dev/null @@ -1,5 +0,0 @@ -parserOptions: - ecmaVersion: 2016 -rules: - no-invalid-this: 0 - no-console: 0 diff --git a/node_modules/fast-deep-equal/benchmark/index.js b/node_modules/fast-deep-equal/benchmark/index.js deleted file mode 100644 index ed01a39fb..000000000 --- a/node_modules/fast-deep-equal/benchmark/index.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -const assertDeepStrictEqual = require('assert').deepStrictEqual; -const tests = require('../spec/tests'); -const Benchmark = require('benchmark'); -const suite = new Benchmark.Suite; - - -const equalPackages = { - 'fast-deep-equal': require('../index'), - 'nano-equal': true, - 'shallow-equal-fuzzy': true, - 'underscore.isEqual': require('underscore').isEqual, - 'lodash.isEqual': require('lodash').isEqual, - 'deep-equal': true, - 'deep-eql': true, - 'assert.deepStrictEqual': (a, b) => { - try { assertDeepStrictEqual(a, b); return true; } - catch(e) { return false; } - } -}; - - -for (const equalName in equalPackages) { - let equalFunc = equalPackages[equalName]; - if (equalFunc === true) equalFunc = require(equalName); - - for (const testSuite of tests) { - for (const test of testSuite.tests) { - try { - if (equalFunc(test.value1, test.value2) !== test.equal) - console.error('different result', equalName, testSuite.description, test.description); - } catch(e) { - console.error(equalName, testSuite.description, test.description, e); - } - } - } - - suite.add(equalName, function() { - for (const testSuite of tests) { - for (const test of testSuite.tests) { - if (test.description != 'pseudo array and equivalent array are not equal') - equalFunc(test.value1, test.value2); - } - } - }); -} - -console.log(); - -suite - .on('cycle', (event) => console.log(String(event.target))) - .on('complete', function () { - console.log('The fastest is ' + this.filter('fastest').map('name')); - }) - .run({async: true}); diff --git a/node_modules/fast-deep-equal/index.js b/node_modules/fast-deep-equal/index.js index a29572d71..27264f5b2 100644 --- a/node_modules/fast-deep-equal/index.js +++ b/node_modules/fast-deep-equal/index.js @@ -1,43 +1,55 @@ 'use strict'; +var isArray = Array.isArray; +var keyList = Object.keys; +var hasProp = Object.prototype.hasOwnProperty; + module.exports = function equal(a, b) { if (a === b) return true; - var arrA = Array.isArray(a) - , arrB = Array.isArray(b) - , i; + if (a && b && typeof a == 'object' && typeof b == 'object') { + var arrA = isArray(a) + , arrB = isArray(b) + , i + , length + , key; - if (arrA && arrB) { - if (a.length != b.length) return false; - for (i = 0; i < a.length; i++) - if (!equal(a[i], b[i])) return false; - return true; - } + if (arrA && arrB) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } - if (arrA != arrB) return false; - - if (a && b && typeof a === 'object' && typeof b === 'object') { - var keys = Object.keys(a); - if (keys.length !== Object.keys(b).length) return false; + if (arrA != arrB) return false; var dateA = a instanceof Date , dateB = b instanceof Date; - if (dateA && dateB) return a.getTime() == b.getTime(); if (dateA != dateB) return false; + if (dateA && dateB) return a.getTime() == b.getTime(); var regexpA = a instanceof RegExp , regexpB = b instanceof RegExp; - if (regexpA && regexpB) return a.toString() == b.toString(); if (regexpA != regexpB) return false; + if (regexpA && regexpB) return a.toString() == b.toString(); + + var keys = keyList(a); + length = keys.length; + + if (length !== keyList(b).length) + return false; - for (i = 0; i < keys.length; i++) - if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + for (i = length; i-- !== 0;) + if (!hasProp.call(b, keys[i])) return false; - for (i = 0; i < keys.length; i++) - if(!equal(a[keys[i]], b[keys[i]])) return false; + for (i = length; i-- !== 0;) { + key = keys[i]; + if (!equal(a[key], b[key])) return false; + } return true; } - return false; + return a!==a && b!==b; }; diff --git a/node_modules/fast-deep-equal/package.json b/node_modules/fast-deep-equal/package.json index 889a59e2f..716114ecf 100644 --- a/node_modules/fast-deep-equal/package.json +++ b/node_modules/fast-deep-equal/package.json @@ -1,13 +1,14 @@ { "name": "fast-deep-equal", - "version": "1.0.0", + "version": "2.0.1", "description": "Fast deep equal", "main": "index.js", "scripts": { "eslint": "eslint *.js benchmark spec", "test-spec": "mocha spec/*.spec.js -R spec", "test-cov": "nyc npm run test-spec", - "test": "npm run eslint && npm run test-cov" + "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts", + "test": "npm run eslint && npm run test-ts && npm run test-cov" }, "repository": { "type": "git", @@ -27,16 +28,18 @@ "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^2.13.1", - "deep-eql": "^2.0.2", - "deep-equal": "^1.0.1", + "deep-eql": "latest", + "deep-equal": "latest", "eslint": "^4.0.0", - "lodash": "^4.17.4", + "lodash": "latest", "mocha": "^3.4.2", - "nano-equal": "^1.0.1", + "nano-equal": "latest", "nyc": "^11.0.2", "pre-commit": "^1.2.2", - "shallow-equal-fuzzy": "0.0.2", - "underscore": "^1.8.3" + "ramda": "latest", + "shallow-equal-fuzzy": "latest", + "typescript": "^2.6.1", + "underscore": "latest" }, "nyc": { "exclude": [ @@ -47,5 +50,10 @@ "lcov", "text-summary" ] - } + }, + "files": [ + "index.js", + "index.d.ts" + ], + "types": "index.d.ts" } diff --git a/node_modules/fast-deep-equal/spec/.eslintrc.yml b/node_modules/fast-deep-equal/spec/.eslintrc.yml deleted file mode 100644 index 5869f6243..000000000 --- a/node_modules/fast-deep-equal/spec/.eslintrc.yml +++ /dev/null @@ -1,5 +0,0 @@ -rules: - no-console: 0 -globals: - describe: false - it: false diff --git a/node_modules/fast-deep-equal/spec/index.spec.js b/node_modules/fast-deep-equal/spec/index.spec.js deleted file mode 100644 index 1fab259ee..000000000 --- a/node_modules/fast-deep-equal/spec/index.spec.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var equal = require('../index'); -var tests = require('./tests'); -var assert = require('assert'); - - -describe('equal', function() { - tests.forEach(function (suite) { - describe(suite.description, function() { - suite.tests.forEach(function (test) { - it(test.description, function() { - assert.strictEqual(equal(test.value1, test.value2), test.equal); - }); - }); - }); - }); -}); diff --git a/node_modules/fast-deep-equal/spec/tests.js b/node_modules/fast-deep-equal/spec/tests.js deleted file mode 100644 index f8d1ddf91..000000000 --- a/node_modules/fast-deep-equal/spec/tests.js +++ /dev/null @@ -1,320 +0,0 @@ -'use strict'; - -module.exports = [ - { - description: 'scalars', - tests: [ - { - description: 'equal numbers', - value1: 1, - value2: 1, - equal: true - }, - { - description: 'not equal numbers', - value1: 1, - value2: 2, - equal: false - }, - { - description: 'number and array are not equal', - value1: 1, - value2: [], - equal: false - }, - { - description: '0 and null are not equal', - value1: 0, - value2: null, - equal: false - }, - { - description: 'equal strings', - value1: 'a', - value2: 'a', - equal: true - }, - { - description: 'not equal strings', - value1: 'a', - value2: 'b', - equal: false - }, - { - description: 'empty string and null are not equal', - value1: '', - value2: null, - equal: false - }, - { - description: 'null is equal to null', - value1: null, - value2: null, - equal: true - }, - { - description: 'equal booleans (true)', - value1: true, - value2: true, - equal: true - }, - { - description: 'equal booleans (false)', - value1: false, - value2: false, - equal: true - }, - { - description: 'not equal booleans', - value1: true, - value2: false, - equal: false - }, - { - description: '1 and true are not equal', - value1: 1, - value2: true, - equal: false - }, - { - description: '0 and false are not equal', - value1: 0, - value2: false, - equal: false - } - ] - }, - - { - description: 'objects', - tests: [ - { - description: 'empty objects are equal', - value1: {}, - value2: {}, - equal: true - }, - { - description: 'equal objects (same properties "order")', - value1: {a: 1, b: '2'}, - value2: {a: 1, b: '2'}, - equal: true - }, - { - description: 'equal objects (different properties "order")', - value1: {a: 1, b: '2'}, - value2: {b: '2', a: 1}, - equal: true - }, - { - description: 'not equal objects (extra property)', - value1: {a: 1, b: '2'}, - value2: {a: 1, b: '2', c: []}, - equal: false - }, - { - description: 'not equal objects (different properties)', - value1: {a: 1, b: '2', c: 3}, - value2: {a: 1, b: '2', d: 3}, - equal: false - }, - { - description: 'not equal objects (different properties)', - value1: {a: 1, b: '2', c: 3}, - value2: {a: 1, b: '2', d: 3}, - equal: false - }, - { - description: 'equal objects (same sub-properties)', - value1: { a: [ { b: 'c' } ] }, - value2: { a: [ { b: 'c' } ] }, - equal: true - }, - { - description: 'not equal objects (different sub-property value)', - value1: { a: [ { b: 'c' } ] }, - value2: { a: [ { b: 'd' } ] }, - equal: false - }, - { - description: 'not equal objects (different sub-property)', - value1: { a: [ { b: 'c' } ] }, - value2: { a: [ { c: 'c' } ] }, - equal: false - }, - { - description: 'empty array and empty object are not equal', - value1: {}, - value2: [], - equal: false - }, - { - description: 'object with extra undefined properties are not equal #1', - value1: {}, - value2: {foo: undefined}, - equal: false - }, - { - description: 'object with extra undefined properties are not equal #2', - value1: {foo: undefined}, - value2: {}, - equal: false - }, - { - description: 'object with extra undefined properties are not equal #3', - value1: {foo: undefined}, - value2: {bar: undefined}, - equal: false - } - ] - }, - - { - description: 'arrays', - tests: [ - { - description: 'two empty arrays are equal', - value1: [], - value2: [], - equal: true - }, - { - description: 'equal arrays', - value1: [1, 2, 3], - value2: [1, 2, 3], - equal: true - }, - { - description: 'not equal arrays (different item)', - value1: [1, 2, 3], - value2: [1, 2, 4], - equal: false - }, - { - description: 'not equal arrays (different length)', - value1: [1, 2, 3], - value2: [1, 2], - equal: false - }, - { - description: 'equal arrays of objects', - value1: [{a: 'a'}, {b: 'b'}], - value2: [{a: 'a'}, {b: 'b'}], - equal: true - }, - { - description: 'not equal arrays of objects', - value1: [{a: 'a'}, {b: 'b'}], - value2: [{a: 'a'}, {b: 'c'}], - equal: false - }, - { - description: 'pseudo array and equivalent array are not equal', - value1: {'0': 0, '1': 1, length: 2}, - value2: [0, 1], - equal: false - } - ] - }, - { - description: 'Date objects', - tests: [ - { - description: 'equal date objects', - value1: new Date('2017-06-16T21:36:48.362Z'), - value2: new Date('2017-06-16T21:36:48.362Z'), - equal: true - }, - { - description: 'not equal date objects', - value1: new Date('2017-06-16T21:36:48.362Z'), - value2: new Date('2017-01-01T00:00:00.000Z'), - equal: false - }, - { - description: 'date and string are not equal', - value1: new Date('2017-06-16T21:36:48.362Z'), - value2: '2017-06-16T21:36:48.362Z', - equal: false - }, - { - description: 'date and object are not equal', - value1: new Date('2017-06-16T21:36:48.362Z'), - value2: {}, - equal: false - } - ] - }, - { - description: 'RegExp objects', - tests: [ - { - description: 'equal RegExp objects', - value1: /foo/, - value2: /foo/, - equal: true - }, - { - description: 'not equal RegExp objects (different pattern)', - value1: /foo/, - value2: /bar/, - equal: false - }, - { - description: 'not equal RegExp objects (different flags)', - value1: /foo/, - value2: /foo/i, - equal: false - }, - { - description: 'RegExp and string are not equal', - value1: /foo/, - value2: 'foo', - equal: false - }, - { - description: 'RegExp and object are not equal', - value1: /foo/, - value2: {}, - equal: false - } - ] - }, - { - description: 'sample objects', - tests: [ - { - description: 'big object', - value1: { - prop1: 'value1', - prop2: 'value2', - prop3: 'value3', - prop4: { - subProp1: 'sub value1', - subProp2: { - subSubProp1: 'sub sub value1', - subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5] - } - }, - prop5: 1000, - prop6: new Date(2016, 2, 10) - }, - value2: { - prop5: 1000, - prop3: 'value3', - prop1: 'value1', - prop2: 'value2', - prop6: new Date('2016/03/10'), - prop4: { - subProp2: { - subSubProp1: 'sub sub value1', - subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5] - }, - subProp1: 'sub value1' - } - }, - equal: true - } - ] - } -]; |