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