Merge pull request #124 from jerome-benoit/dependabot/npm_and_yarn/commitlint/cli...
[benchmarks-js.git] / deep-merge-object.mjs
1 /* eslint-disable no-unused-vars */
2 import Benchmark from 'benny'
3 import _ from 'lodash'
4 import merge from 'just-merge'
5 import deepMerge from 'deepmerge'
6 import { generateRandomObject } from './benchmark-utils.mjs'
7
8 const object = generateRandomObject()
9 const objectToMerge = generateRandomObject()
10
11 Benchmark.suite(
12 `Deep merge two objects: object with ${
13 Object.keys(object).length
14 } keys, object with ${Object.keys(objectToMerge).length} keys`,
15 Benchmark.add('lodash merge', (obj = object) => {
16 const objMerged = _.merge(obj, objectToMerge)
17 }),
18 Benchmark.add('just-merge', (obj = object) => {
19 const objMerged = merge(obj, objectToMerge)
20 }),
21 Benchmark.add('deepmerge', (obj = object) => {
22 const objMerged = deepMerge(obj, objectToMerge)
23 }),
24 Benchmark.cycle(),
25 Benchmark.complete(),
26 Benchmark.save({
27 file: 'deep-merge-object',
28 format: 'json',
29 details: true
30 }),
31 Benchmark.save({
32 file: 'deep-merge-object',
33 format: 'chart.html',
34 details: true
35 }),
36 Benchmark.save({
37 file: 'deep-merge-object',
38 format: 'table.html',
39 details: true
40 })
41 ).catch(console.error)