refactor: cleanups
[benchmarks-js.git] / deep-merge-object.mjs
CommitLineData
896570f7
JB
1/* eslint-disable no-unused-vars */
2import Benchmark from 'benny'
896570f7 3import deepMerge from 'deepmerge'
0c01f51c
JB
4import merge from 'just-merge'
5import _ from 'lodash'
6
896570f7
JB
7import { generateRandomObject } from './benchmark-utils.mjs'
8
9const object = generateRandomObject()
10const objectToMerge = generateRandomObject()
11
12Benchmark.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 }),
04fdaf45 22 Benchmark.add('deepmerge', (obj = object) => {
896570f7
JB
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 })
4aa2893a 42).catch(console.error)